私は、純粋な関数型プログラミングの概念に慣れるために、ずる賢く遊んでいます。どの言語でも役に立つことを行う前に、いくつかの基本的なデータ構造と、それらを効果的に操作する方法を理解する必要があります。特に、列挙可能なデータ構造についてです。
このようなリストを繰り返すことができます (これを正しくインデントしているかどうかはわかりません):
(map (lambda (v)
(display (string-append v "\n"))
'(1 2 3))
=>
1
2
3
ハッシュテーブル/ハッシュマップはスキームでどのように見えますか? それを表す実際のデータ構造はありますか、それともリストのリストを作成することになりますか? その場合、キーと値を内部リストから別の変数として取得するにはどうすればよいでしょうか?
ラムダは 2 つではなく 1 つの値を想定しているため、これは明らかに間違っています。
(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