LISPって実際どうなの... [無断転載禁止]©2ch.net (117レス)
前次1-
抽出解除 レス栞

97
(2): デフォルトの名無しさん [sage] 2021/09/04(土) 14:56:17.80 ID:DQYaENlA(1) AAS
>>48
48(2): デフォルトの名無しさん [] 2016/01/22(金) 21:42:26.66 ID:uxMuX/y7(2/2) AAS
しかし一ヶ月と少したった今、Lisp は関数プログラミングの明晰性を犠牲にしていると
考え出しています。Python のほうが、より明晰な関数プログラミング・スタイルで書け
ると考え始めました。

Emacs Lisp も簡単なものならば書けるようになってきました。でも階層構造さえ無しで
多数のグローバル変数を憶えなければならないのは古臭い言語だと感じます。

Lisp のを高機能にできる秘密はマクロにあるのだろうと思い出しました。自己書き換え
プログラムさえ書け、新たな構文を作り出せてしまうのですから。でも、このような
lisp macro は人智で制御できない領域に簡単に踏み込んでしまう地雷でもあります。こ
んな lisp macro に依存している lisp と そのライブラリには近づかないほうが良いと
考え出しています。

普通のプログラムを書くのならば Python の方が、関数プログラムなら Haskell のほう
がマシだと考え始めています。私の推測は誤っているでしょうか?
> Emacs Lisp も簡単なものならば書けるようになってきました。でも階層構造さえ無しで
> 多数のグローバル変数を憶えなければならないのは古臭い言語だと感じます。

超亀レスだが
elispは動的束縛なのでletで同名変数を宣言すれば大域変数は隠され影響範囲が限定され
キーボード割り込みで大域脱出した時もunwind-protectで元に戻す必要はない
というUI記述言語として極めて良好な性質を持ってる
98
(1): デフォルトの名無しさん [sage] 2021/09/04(土) 17:04:32.79 ID:Q9qQqykt(1) AAS
>>97
それは動的束縛とは関係無い
defvarで定義された変数はスペシャル変数といって、letで束縛するとそういう挙動になるというだけだ
setqで(無理矢理)定義したグローバル変数はそうならない
ちなみに今のelispは静的束縛が実装されて、全てそれを使うようになっている
ただ、互換性を保つためにまだデフォルトにはなってないけど、時間の問題だろう
103
(1): デフォルトの名無しさん [sage] 2021/09/09(木) 23:10:01.54 ID:ByNHohVX(1) AAS
>>97
elispはバッファーローカル変数も興味深い

スレッドローカル変数と意味論的にも近く
マルチバッファーセーフ←→マルチスレッドセーフ
という対比ができる

凄くシンプルな設計と実装で上手くこなしてる
standard-outputやnilストリームの使い方も上手い
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.556s*