Windows版のEmacsを見ていたらPythonが同梱されていた。
オライリーのPython本がでたとき、手をつけてみようと思ったのだけど、なんだかんだとやらなかったので、ちょっと心理的な敷居は高いのだけれど、LispハッカーのPeter Norvigも最近はPythonを使っているようだし。
たとえば、PythonにもListがあるのだけれど。
>>> wrk =[1,2,3,4] wrk =[1,2,3,4] >>> wrk wrk [1, 2, 3, 4] >>>
Listの途中の値を変更するにはこうするらしい。
>>> wrk[2]=99 wrk[2]=99 >>> wrk wrk [1, 2, 99, 4] >>>
そういえば、lispには直接、Listを変更する構文はないなぁ。そのかわりにsetfというものがある。
( setq wrk '(1 2 3 4)) (1 2 3 4) wrk (1 2 3 4) ( setf (elt wrk 2) 99) 99 wrk (1 2 99 4)
どちらが読み易いか、というと、Pythonの方だろうなぁ。setfは変態すぎる。
(setq wrk "ABCDEF") "ABCDEF" wrk "ABCDEF" (setf (substring wrk 2 3) "Z") "ABZDEF" wrk "ABZDEF"
こんなことまでできるし。
まぁ、この程度ならPythonでも文字列のあつかいがimmutableでなければ、できるんだろうけど。
Pythonそのものがサポートしないといけない。
ところが、setfってたしか、マクロだからLispが構文的にサポートしているわけじゃないんだよなぁ。