技術野郎の復讐---Revenge of the Nerds--- [practical-scheme.net]とかそこに引用されている comp.lang.lisp > How I lost my faith (very long) [google.com]を読むとLispってのは Nerds御用達言語らしいというのが想像できて、あこがれます。2つの記事を(超)要約すると 「Lispを使えば短期間で開発ができて、コードの量も非常に小さくできる。PythonはLispの再発明だ」 ということです。しかし、ヘタレなぼくにはそのすごさがいまいち理解できません。そこに書かれている (defun foo (n)
#'(lambda (i) (incf n i))) はいったい何をしたいのでしょうか。Lisperの方、教えてください。
Nerds御用達言語 (スコア:1)
comp.lang.lisp > How I lost my faith (very long) [google.com]を読むとLispってのは
Nerds御用達言語らしいというのが想像できて、あこがれます。2つの記事を(超)要約すると
「Lispを使えば短期間で開発ができて、コードの量も非常に小さくできる。PythonはLispの再発明だ」
ということです。しかし、ヘタレなぼくにはそのすごさがいまいち理解できません。そこに書かれている
(defun foo (n)
#'(lambda (i) (incf n i)))
はいったい何をしたいのでしょうか。Lisperの方、教えてください。
Rubyとの関連については
love && peace && free_software
t-nissie
Re:Nerds御用達言語 (スコア:1)
Lispに方言が多かったのは、過去の話じゃないですか。いまはANSI Common Lisp標準がありますから。もちろん処理系によって細かい差異はあるんですけど、それはC言語なんかでも同じですよね?
標準 (スコア:1)
WHY Common Lisp? [msi.co.jp]を読むとそうみたいですね。
で、SchemeにはR5RSがあると。
> In 技術野郎の復讐---Revenge of the Nerds---
> * これが、他のLisp方言におけるアキュムレータジェネレータのコードだ。
> Scheme: (define (foo n) (lambda (i) (set! n (+ n i)) n))
> Goo: (df foo (n) (op incf n _)))
> Arc: (def foo (n) [++ n _])
Emacs は (defun foo (n) '(lambda (i) (incf n i))) でしょうか。
各Lispの方言の中では標準が固まっ
love && peace && free_software
t-nissie
Re:標準 (スコア:1)
GooやArcは、Common Lispより後に生まれた新しいLisp方言で、正直、Common Lispに飽き足らない人向けですから、これからLispを始めようという人はCommon LispかSchemeのどちらかに手をつけるといいと思います。Common LispもSchemeも多数の処理系がありますが、どちらも標準がありますよ。
Re:標準 (スコア:0)
どうも標準化ってのが、単にいろいろ不便にしてるだけとし
か思えないまま過ぎ去った10ウン年
(defun ac (x y)
(cond ((zerop x) (+ y 1))
((zerop y) (ac (- x 1) 1))
(t (ac (- x 1) (ac x (- y 1))))]
とか
(defun factorial (n)
(cond ((zerop n) 1)
(t (* n (factorial (- n 1)))]
とか