Я играю с хитростью, пытаясь познакомиться с концепциями чистого функционального программирования. Прежде чем я смогу сделать что-нибудь полезное с любым языком, мне нужно понять некоторые основные структуры данных и способы эффективного управления ими ... в частности, перечислимые структуры данных.
Я могу перебирать такой список (я не уверен, правильно ли я делаю отступ):
(map (lambda (v)
(display (string-append v "\n"))
'(1 2 3))
=>
1
2
3
Как хеш-таблица / хеш-карта выглядит на схеме? Есть ли реальная структура данных для ее представления или все сводится к составлению списка списков? В таком случае, как получить ключ и значение как отдельные переменные из внутреннего списка?
Очевидно, это неверно, поскольку лямбда ожидает одно значение, а не два:
(map (lambda (key value)
(display (string-append key " => " value))
'('("one" 1) '("two" 2) '("three" 3)))
Рубиновый эквивалент того, что я пытаюсь сделать было бы так:
{ "one" => 1, "two" => 2, "three" => 3 }.map do |key, value|
puts "#{key} => #{value}"
end