【发布时间】:2015-04-11 11:42:59
【问题描述】:
我在 Racket 中做一些练习,遇到了一个我似乎无法查询文档的问题。
我想为除数列表生成以下modulo curries:
(define multlist '[3 5])
(define modfuncs (map (lambda x ;@ make some modulos
(curry modulo x)) multlist))
这会生成一个柯里化程序列表,这听起来很有希望,但是当我尝试测试其中一个时,我收到以下错误:
-> (car modfuncs)
#<procedure:curried>
-> ((car modfuncs) 3)
; modulo: contract violation
; expected: integer?
; given: '(3)
; argument position: 1st
; [,bt for context]
假设这不是一个糟糕的方法,我如何取消引用传递给 curry/map 调用的 multlist 的值,以便这些函数能够正确评估?
【问题讨论】:
标签: functional-programming scheme racket currying