(foldr + 0 '(1 2 3 4))
返回10
,这正是我所期望的,但是
(foldr and false '(true true false))
给我报错了。
and: expected an open parenthesis before and, but found none
foldr
接受一个函数(该函数需要两个参数,因为我有一个列表)、一个基本情况和一个列表。我希望我的第二行代码在列表中有多个布尔值且全部为true时返回true,这就是我认为它应该的工作方式。但显然不是这样。
true
替换为#t
,将所有的false
替换为#f
,看看是否有效。 - Óscar López'false
和#f
是两个不同的东西。#t
和#f
是布尔值,用于逻辑运算。在#lang racket中,(and #t #f)
和(and #f #t)
都返回#f
,但(and 'true 'false)
返回'false
,而(and 'false 'true)
返回'true
。 - ccoakleyor
,应该是#f
,而不是像and
一样是#t
。 - Will Ness