autolisp / visual lispの次の機能の背後にある設計の理論的根拠を誰かが説明できるでしょうか?私には、彼らは受け入れられたソフトウェアの練習に直面して飛んでいるように見えます...私は何かが欠けていますか?
- すべての変数はデフォルトでグローバルです(つまり
/
、関数の引数のaの後に配置されていない限り) - AutoCADからデータを読み書きするには、多くのマジックナンバーを含む関連付けリストにデータを入れる必要があります。
10
はx/y座標、90
は座標リストの長さ、63
は色などを意味します。これらをいくつかの定数に格納できますが、それはさらに多くのグローバルを意味します。ドキュメントでは、マジックナンバーを直接使用することを推奨しています。 - Lispは機能的なスタイルの言語であり、反復による再帰によるプログラミングを促進しますが、末尾再帰は視覚的なLispで最適化されておらず、恐ろしい呼び出しスタックにつながります。もちろん、反復しない限り。ただし、ループ構文は非常に制限されています。たとえば、終了条件に何らかのフラグを設定しない限り、ループから抜けたり、ループから値を返したりすることはできません。結果、醜いコード。
- 一般に、関数型プログラミングに直面するあらゆる場所で変数を宣言する必要があります。それでは、なぜ関数型(-ish)言語を使用するのでしょうか。