scheme - 评估真假列表

时间:2014-02-17 16:44:34

标签: functional-programming scheme racket

我有一个真/假列表(像这样(#f #f #f #f #f #t))并且我想循环遍历它,制作一个if语句并进行追加。

但是我的地图/如果迭代器没有像我预期的那样工作

我正在尝试这个:

(map (if (false? lst) "do this" "do that" ) lst)

在伪代码中我会有类似的东西

for each value in lst
  if value
    "do that"
  else
    "do this"

1 个答案:

答案 0 :(得分:2)

请记住map作为参数接收列表和函数,它们对每个元素进行操作。试试这个:

(map (lambda (e)
       (if (false? e)
           "do this"
           "do that"))
     lst)

例如,如果我们将lst定义为'(#f #f #f #f #f #t),则结果为:

'("do this" "do this" "do this" "do this" "do this" "do that")