私は関数型プログラミングを実験してきましたが、まだその概念を理解していません。この概念について説明している優れた本やチュートリアル、例を知っていますか?または、その使用法に関する小さなスニペットを表示できれば、それは素晴らしいことです。
4 に答える
lispやスキームを学ぶ。言語はデータ構造が言語です。LispコードとLispデータ構造は同じ構文規則を持っています。
tclを習得すると、手続き型の言語で作業でき、データ構造の構文規則はプログラミング言語の構文規則と同じになります。
厳密に言えば、関数型プログラミングの問題ではありません。これは、データの構文規則と言語の構文規則が同じであるいくつかの言語ではさらに問題になります。
JohnHughesによる関数型プログラミングが重要な理由は最高の1つだと思います。
REBOLは同像性言語です。REBOLのblock!
データ型は、LispのS式と同様に、有効なREBOLトークンが含まれる角括弧のセットです。例えば:
series: [1 2 3 4]
foreach item series [
print item
]
それでは、少し違った表現をしましょう。
series: [1 2 3 4]
for-body: [print item] ; This is the body of our foreach
foreach item series for-body
データとして宣言されていましたが、関数for-body
に渡すときにブロックをコードとして扱いました。foreach
ブロックの最初の項目のタイプをREBOLに尋ねると、それfor-body
は私たちに教えてくれますが、type? first for-body
教えてくれword!
ませんfunction!
(またはnative!
、またはaction!
他のREBOL関数タイプのいずれか)。その理由は、データとしてfor-body
は、REBOLワードの未評価のチャンクにすぎないためです。それをに渡すとforeach
、コードとして評価されます。
REBOLを「Lispのように括弧なしで」と呼ぶ人もいます。私は個人的にLispよりもそれを好みますが、そうではないかもしれません。それでも、私が魅力的だと思う主題である同像性について学びたいときに、それは最初から素晴らしい言語です。