【发布时间】:2011-12-29 03:42:52
【问题描述】:
我正在玩弄诡计来尝试熟悉纯函数式编程概念。在我可以使用任何语言做任何有用的事情之前,我需要了解一些基本的数据结构以及如何有效地操作它们……尤其是可枚举的数据结构。
我可以像这样迭代一个列表(我不确定我是否正确缩进):
(map (lambda (v)
(display (string-append v "\n"))
'(1 2 3))
=>
1
2
3
哈希表/哈希映射在方案中是什么样的?是否有一个真实的数据结构来表示一个,还是归结为制作一个列表?在这种情况下,如何从内部列表中获取作为单独变量的键和值?
显然这是错误的,因为 lambda 需要一个值,而不是两个:
(map (lambda (key value)
(display (string-append key " => " value))
'('("one" 1) '("two" 2) '("three" 3)))
我正在尝试做的 Ruby 等价物是:
{ "one" => 1, "two" => 2, "three" => 3 }.map do |key, value|
puts "#{key} => #{value}"
end
【问题讨论】:
-
P.S.当不使用函数的返回值时,您应该使用
for-each而不是map。 -
谢谢,我从 wiki 的页面中获得了关于循环的地图,并假设它已被使用,因为可以忽略返回值 :) 很高兴知道!
标签: dictionary scheme guile