【入門】Common Lisp その3【質問よろず】 >>951 Lispboxというすぐ使える環境をダウンロードしてみたら?
S式のインデントに応じて振る舞いを変えられるような マクロってかけませんか?
マクロじゃなくてリーダーの方に細工するんじゃダメなの?
>>7 のリンクのどこだかにpython見たいな事をリーダマクロで実行させてみるって記事が有ったと思うのだけどちょっと失念。
"(a b c d e f)"このような文字列を読み込んで リスト構造として取り込むためには (eval "(a b c d e f)") ってやればいいんですよね? (mapcar #'(lambda (x) (format t "~A~%" x)) (eval "(a b c d e f)")) こうやってもエラーが出るのですがどうすればいいでしょうか?
>>958 (read-from-string "(a b c d e f)")
>>958 普通の言語だと eval しかないけど、
>>959 が既に書いている
read があるのが lisp の大きな特徴だよ。
macroexpandもね。
>>960 そういう eval のある「普通の言語」って何?
そうなんだ。知らんかった。
(A B C D E F G) のようなリストをドット表記として再出力させるにはどうしたらよいのでしょうか?
>>966 (defun print-dot (s)
(cond ((consp s)
(princ "(")
(print-dot (car s))
(princ " . ")
(print-dot (cdr s))
(princ ")"))
(t (prin1 s))))
>>965 Lispについての記述はちょっと変だな。
Lispを知らない人が書いたっぽい。
Lisp知ってる人が興味持たないところって琴田
971 :
デフォルトの名無しさん :2008/01/22(火) 12:55:44
よくfooというのを見るのですが、 このfooというのはどこから来ているのですか?
>>971 第二次世界大戦中の兵士たちのスラング
FUBAR "Fucked Up Beyond All Repair"(何もかもしっちゃかめっちゃか) の最初のFUがfooになって
そこから着てるのではないか...という説がRFCに乗ってたような...
これね(日本語訳)
ttp://www.puni.net/~mimori/rfc/rfc3092.txt ttp://www.dourish.com/goodies/jargon.html から引用
FOO 1. [from Yiddish "feh" or the Anglo-Saxon "fooey!"] interj. Term
of disgust. 2. [from FUBAR (Fucked Up Beyond All Recognition), from
WWII, often seen as FOOBAR] Name used for temporary programs, or
samples of three-letter names. Other similar words are BAR, BAZ
(Stanford corruption of BAR), and rarely RAG. These have been used in
Pogo as well. 3. Used very generally as a sample name for absolutely
anything. The old `Smokey Stover' comic strips often included the
word FOO, in particular on license plates of cars. MOBY FOO: See MOBY.
スレチだが便乗で hoge の起源も知りたい
hogeんな! hage! みたいな使い方で合ってますかね?
981 :
デフォルトの名無しさん :2008/01/24(木) 21:41:47
GCLのコンパイル時について質問させてください。 (defun foo ( ) (if (終了条件) finish (progn (・・・) (・・・) (foo)))) 以上のように、prognの最後に再帰呼び出しを持ってきた関数を作った場合、 末尾再帰として認識され、gccでコンパイル後にループになるのでしょうか?
高い最適化レベルを指定すればループになるよ
>>982 回答ありがとうございます。
高い最適化レベルというのは、
(declaim (optimize (speed 3)))
を宣言すればいいのかな。
間違っていたら指摘お願いします。
>>984 ありがとうございます。
悩んでいたところなので、非常に助かりました。
986 :
デフォルトの名無しさん :2008/01/26(土) 10:50:47
((lambda (x) (1+ x) 1)とか、先頭にlambda式が来るときってどうのように処理しているのですか?
その lambda 式に引数渡して使ってるだけじゃね
lambdaを他のシンボルに変えたいんですが・・・
何をしたいかよりも、何故そうしたいかを述べるほうが的確なアドバイスが得られますよ
>>986 他の言語なら処理系のソースコード修正するぐらい大変だぞ
判ってんのか?
LISPならマクロでできまちゅね〜よかったでちゅ
>>988 リードマクロで妥協
(set-macro-character #\\
#'(lambda (strm char)
(cons 'lambda (read strm t nil t))))
あーそっか。 CommonLispには*太古の呪い*が掛かってるんだよね:-)
994 :
デフォルトの名無しさん :2008/01/27(日) 09:28:41
read-lineで読んできた文字列をリストにいれようとしてるんだけど CPU100%になって終わるんだよね (append リスト (リードラインうんたらかんたら)) これって禁則的な書き方なのか?
うんたらかんたらがあやしい
996 :
デフォルトの名無しさん :2008/01/27(日) 10:23:19
(while (append c (read-line in nil)) こんな感じ lispの勉強全然進まない
Append じゃなくて cons 使って最後に nreverse する. 今のだと O(N^2).
>>993 わざわざCLスレまで来て煽るのはちょっと恥ずかしいぞ。素直にScheme使えば?
999 :
デフォルトの名無しさん :2008/01/27(日) 11:54:22
次スレのURL↓
1000 :
LISPは死ぬ :2008/01/27(日) 12:00:28
,ィミ, ,ィミ, フ 彡 ミ 彡 ミ, ヤ | ,,彡 ミ、、、、、、、、彡 ミ, (⌒) レ | 彡;:;: ミ, ( ヽ ヤ 〜三;:;::::: 彡〜 ノ ノ レ ~~三:;:;:;::::: -=・=- -=・=- 三~~ ヽ ( : ;; ~~彡::;:;:;:;:::.. ___ ,三~~ ( ノ ,,,,, : ;; ~~彡;:;:;:;:;:;:;:. |┴┴| ,ミ~~ ノノ ;'" ,,ノ―、 ,;' ~~彡:;:;:;:;:;:;:;:;. ノ――| ---==ニノ ,;'′ >=ニ(二二二() ,...-''''""~~,::;:;::;::;::;::;' ミ,, ,;'′ ゝ--〈 __,;";;:;;;;;;;;;;;;;;;;;;;;;:;:;:;:;:;:;:; i! ミ,,,,;'′ `ー‐' ::::ミミミ:;:;:;: ミ:: ,;' ̄ ̄ ̄ ̄| \___/ :::::ミミミ:;:;: ミ:::, ,;::''′ |. \/ ::::ミミミ:;:;:: ,;+''"~~゙+、~'''''~ | | ::::ミミミ:;:;:;: ,+'" ミ::::: | ━┷━━━┳━━━━━ :::::ミミミ:;:;:;:;: >':;: ミ:: | ┃ ::::::ミミミ:;:;:;:;:;../;:;:;: ;:" | ┃ ::::::::ミミミミ:;:/;:;:;:;: ,.+'"''-、________|__ ┃  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄;':;:;:;: ,.+'" ミ、 l ┃
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。