方案-使用申请 [英] Scheme - using apply
本文介绍了方案-使用申请的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我作为家庭作业接受了以下练习.我在上面坐了好几个小时都没有成功,所以别无选择,只能使用您的帮助.
I received the following exercise as homework. I sat on it for hours without any success, so I have no choice but to use your help.
示例:
(define m1 (cons "fixNumber" (lambda () 42)))
(define m3 (cons "add" (lambda (x y) (+ x y))))
(define myobj (create-obj (list m1 m2 m3)))
(myobj "fixNumber" '()) ;; => 42
(myobj "add" '(1 2)) ;; => 3
(myobj "myMethod" '()) ;; => "Error: no such method"
推荐答案
这应该做到:
(define (create-obj mlist)
(lambda (method parms)
(let ((func (assoc method mlist)))
(if func
(apply (cdr func) parms)
"Error: no such method"))))
这篇关于方案-使用申请的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文