Lisp は、講師がチューリング マシンよりも優れたツールを使用できるように、コンピューティング モデルの数学的表記法として始まりました。偶然にも、アセンブリで実装できることが判明しました。このようにして、プログラミング言語 Lisp が誕生しました。
しかし、Lisp が記述している計算モデルにはループがないため、これは実際にあなたが探しているものではないと思います: 代わりに再帰が使用されます。構文は代数から派生したもので、中かっこはこれを評価して結果を代用することを示します。実際、Lisp のコンピューティング モデルは基本的に代入です。つまり、本質的に代数です。
実際、Lisp、Haskell、Erlang などのほとんどの関数型言語は、数学から派生しています。Haskell は、ラムダ計算を使用して型システムを実装できることを証明した結果です。つまり、Haskell は、Lisp と同様に、純粋数学から生まれました。しかし、繰り返しになりますが、構文はおそらく慣れ親しんだものではありません。
確かに Lisp と Haskell の構文を数学者に説明でき、彼らはそれを「ゲーム」として扱うでしょう。ループ、再帰、条件分岐などの言語構造は、他の言語のようにやみくもに実装するのではなく、ゲームのルールから外して証明できます。これは、数学の別の分野であるコンビナトロニクスの領域にあなたを導きます。実際、コンビナトロニクスでは、数の概念でさえ、言語のネイティブな部分ではなく、ゲームのルールから構築できます (google Church Numerals)。
必要に応じて、Lisp/Scheme、Erlang、Haskell を調べてください。Erlang には特に、必要なものに近い構文があります。
add(a,b) -> a + b
ただし、C ライクな疑似コードで記述することをお勧めします。これは、プログラミング言語の最小公分母のようなものです。理解しやすくきれいな構文を持っています。また、関数の構文は、数学の関数からも派生しています。覚えていf(x)
ますか?
プラスとして、数学者は C を書くことに慣れており、統計学者は C を書くことに慣れていますが (一般的には R を好みます)、物理学者は C を書くことに慣れており、プログラマーは少なくとも C を見ることに慣れています (私は、 C)に触れた。
実際、それをスクラッチします。あなたのターゲットオーディエンスは統計学者だとおっしゃいました。Rで書く