В схеме хитрости, как я могу перебирать список пар ключ-значение (например, хеш-карту)?

Я играю с хитростью, пытаясь познакомиться с концепциями чистого функционального программирования. Прежде чем я смогу сделать что-нибудь полезное с любым языком, мне нужно понять некоторые основные структуры данных и способы эффективного управления ими ... в частности, перечислимые структуры данных.

Я могу перебирать такой список (я не уверен, правильно ли я делаю отступ):

(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
5
задан Will Ness 29 December 2015 в 22:21
поделиться