new*_*mer 4 scheme function fold special-form racket
(foldr + 0 '(1 2 3 4))
Run Code Online (Sandbox Code Playgroud)
回报10
这是我所期望的,但是
(foldr and false '(true true false))
Run Code Online (Sandbox Code Playgroud)
给了我错误
and: expected an open parenthesis before and, but found none
Run Code Online (Sandbox Code Playgroud)
foldr
采用一个函数(它有两个参数,因为我有一个列表),一个基本情况和一个列表.我希望我的第二行代码返回true如果列表的布尔值超过零并且它们都是真的,那就是我认为它会起作用的方式.但显然不是.
And
是一种特殊的形式,不会使用foldr
,它期望一个过程作为它的第二个参数.试试这个:
(foldr (lambda (x y) (and x y)) #t '(#t #t #f)) ;#t as base case
Run Code Online (Sandbox Code Playgroud)
这种特殊情况的另一种选择是使用andmap
:
(andmap identity '(#t #t #f))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1663 次 |
最近记录: |