- 1 名前:デフォルトの名無しさん [2011/07/06(水) 17:15:15.55 ]
- lispを触ってみたい入門者のQ&A
初心者のQ&A 本スレでは恥ずかしくて聞けない人のQ&A 本スレは高度すぎて割り込めない人のQ&A linuxでなくてwindowsでやりたいんですが・・・Q&A lispを使用してC#やJAVAの代替にするための方法(おまけ) ま、ゆっくりたりましょう。 「いいものの本質は、いかなる時代においても変わらない」byパワーズ (list (url pc8.2ch.net/test/read.cgi/tech/1101386936/l50 :part 1) (url pc11.2ch.net/test/read.so/tech/1140012484/l50 :part 2) (url pc11.2ch.net/test/read.so/tech/1181479267/l50 :part 3) (url pc11.2ch.net/test/read.cgi/tech/1201402366/l50 :part 4) (url pc11.2ch.net/test/read.cgi/tech/1215834213/l50 :part 5) (url pc12.2ch.net/test/read.cgi/tech/1234884136/l50 :part 6) (url hibari.2ch.net/test/read.cgi/tech/1270370267/l50 :part 7) □テンプレート置き場□ ttp://wiki.fdiary.net/lisp/ (id:guest pass:cl)
- 22 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 14:31:51.10 ]
- >>20
どういうことがやりたいの? HyperSpecを流し読みしてみたけど、ドンピシャの関数とかはないみたい。 CCLなら、ccl:type-specifier-pという関数があったよ。
- 23 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 16:02:33.06 ]
- >>22
あるクラスのサブクラスのオブジェクトについて (defun make-hoge (type &rest args) ...) みたいな感じのコンストラクタを書きたいと思い ここでtypeにtype-specとニックネームのような短い名前の 両方を入れられるようにしたいと思いました typeはtype-specと1対1に対応しているわけではなく、 typeを参考にargsの内容から実際のtype-specを推測します。 ここで、typeがtype-specだった場合に 対応しているものか調べるために、subtypepを呼ぶと、 typeがtype-specで無い場合にエラーが起きてしまいます 誰もご存知ないようなら例外処理か何かで対応しようと思います ありがとうございました
- 24 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 19:08:06.55 ]
- >>23
なるほど。力になれずに申し訳ないけど、ポータブルなやり方は分からない。 subtypepのエラーを捕捉するのが、泥臭いけど一番良いのかな。 >>22で挙げたccl:type-specifier-pでは、 (defun type-specifier-p (form &aux sym) (cond ((symbolp form) (or (type-predicate form) (structure-class-p form) (%deftype-expander form) (find-class form nil))) ((consp form) (setq sym (%car form)) (or (type-specifier-p sym) (memq sym '(member satisfies mod)) (and (memq sym '(and or not)) (dolist (spec (%cdr form) t) (unless (type-specifier-p spec) (return nil)))))) (t (typep form 'class)))) こんな風に判断してた。
- 25 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 23:37:49.07 ]
- Lispというと、なんだかリストばかりを使うイメージがあります。
実際には配列も多く使用するのですか。
- 26 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 05:28:59.34 ]
- 基本はリストだけど配列のほうが適している場面では使うかと
「サイズ不変」かつ「ランダムアクセス多発」なんてときはそりゃ配列のが良いさ C言語とかだと組み込みとかの極小メモリ環境意識するし 標準では配列しか使えないから配列がメインだろうけど あれだって「要素数が常に変化する」「シーケンシャルアクセスがメイン」なんて場合はリストも使うっしょ
- 27 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 06:59:05.59 ]
- Clojure なんて見てると、プログラムをデータとして扱う(要はマクロ)とき
は確かにリストだけど、それ以外は何でもありって感じ。 Lisp の進化形なのか、変種にすぎないのか、良く分からんね。
- 28 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 07:27:39.63 ]
- リストはメモリの消費が激しいから、配列も多用するよー。
リストの場合、32ビットでもコンスセルあたり8バイトとか使うし。64ビットだともう凄い。 32ビットで1024要素くらいでも、リストが8 kb強、ベクタなら4 kb弱とダブルスコア。 ただ、遅延ストリームとか循環リストとか便利だし、木構造も表現できるし、 なんだかんだ言ってalistもplistもお手軽で便利だから、リスト使うよ。 >>26の言うように、シーケンシャルアクセスなら速いし。
- 29 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 08:39:23.30 ]
- Lisp で手軽に扱えるデータ構造というとリストだからね。
まぁ、そのように作られた言語だから当然なんだけど。 ざっくりとしたものをまず作るってときにリストの柔軟性っていうのはすごくマッチしてるんだよ。 プログラムを書く序盤っていうのはどんなデータ構造が適切なのか、 どこがボトルネックになるのかはわからない。 わかってるつもりがやってみたら違うってこともある。 だから序盤ではリストで作ってみて効率に効いてくるところを配列や構造体で置換えるというのはよくある。 機能や性能が不足だろうととにかく「まず動くもの」を作ってから改良していくのが Lisp 的なスタイルだし、 そのスタイルにリストはよく合うってこと。
- 30 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 12:46:05.02 ]
- >>24
ありがとうございます。 参考になります。
- 31 名前:25 mailto:sage [2011/07/17(日) 17:38:02.06 ]
- 25です。
皆様ご回答ありがとうございました。 勉強になりました。
- 32 名前:デフォルトの名無しさん mailto:sage [2011/07/19(火) 12:30:42.10 ]
- common lispの挙動を理解するために
common lisp の(簡単な)サブセットを vbs で作って見たいのですが、 どこから着手すればよいのかわかりません できれば動作を確認しながら実装したいです lispのサブセットを作成したことがある方の意見をお聞かせください
- 33 名前:デフォルトの名無しさん mailto:sage [2011/07/19(火) 14:35:01.66 ]
- vbsで書かれたyaccでも探すとか?
- 34 名前:デフォルトの名無しさん mailto:sage [2011/07/19(火) 16:05:02.70 ]
- >>32
Lisp1.5から始めたら? Lisp自体初めてでも3日とかからないでしょ。
- 35 名前:デフォルトの名無しさん mailto:sage [2011/07/19(火) 21:04:48.95 ]
- >>32
何で CL の挙動を理解するのに vbs でサブセットを実装するという話になるのか分からんけど、 Lisp の処理系を作った事がないなら、まずは↓この記事が参考になると思います。 www.oki-osk.jp/esc/go.html CL の実装はその後で。 それより CL の処理系をインストールしてガシガシ弄った方が勉強になると思うけど...
- 36 名前:デフォルトの名無しさん mailto:sage [2011/07/19(火) 21:35:27.97 ]
- 好きなやり方でやればいい。
- 37 名前:デフォルトの名無しさん mailto:sage [2011/07/20(水) 01:14:41.07 ]
- サブセットでも、Common Lispの処理系を作るとかマジ勇者だな。LispとかSchemeならともかく。
Visual Basicとかから来たのなら、規格に溢れる概念や用語を把握するだけでもきつい気がする。 応援してるから頑張ってくれ。もし手応えを得たら、日本発の処理系再びって展開を期待。
- 38 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 13:45:40.59 ]
- blog.bugyo.tk/lyrical/archives/126
ニコニコ動画のスクリプトでLispインタプリタ作ったそうだ
- 39 名前:デフォルトの名無しさん [2011/07/21(木) 15:12:46.41 ]
- いつの話題だよ
- 40 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 22:06:16.45 ]
- 書いてあるよ?
- 41 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 22:42:11.72 ]
- 確かに「いつの話題だよ」って文を額面通りに読めばいつの話題なのか訊ねてることになるが……
- 42 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 22:56:32.95 ]
- 人工知能なんだろう
- 43 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 03:22:46.85 ]
- ナンセンスギャグの王道的手法だな
- 44 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 08:29:49.03 ]
- >>41
修辞疑問だな。
- 45 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 14:11:09.96 ]
- このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。
- 46 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 21:07:56.93 ]
- このスレッドはCommon Lispによる人工知能「AIちゃん」が
言語訓練のために立てたものです。 AIと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。
- 47 名前:デフォルトの名無しさん mailto:sage [2011/07/23(土) 01:28:34.64 ]
- そこはElizaちゃんでだなぁ
- 48 名前:デフォルトの名無しさん mailto:sage [2011/07/24(日) 18:26:29.09 ]
- Common Lispって実際に使われてるの?
- 49 名前:デフォルトの名無しさん mailto:sage [2011/07/24(日) 19:34:32.07 ]
- その質問定期的に出るNE!
しかも過去ログを読もうともしないし、グーグル先生にお伺いを立てることもないんだ。
- 50 名前:デフォルトの名無しさん mailto:sage [2011/07/24(日) 19:44:05.18 ]
- stumpwmで動作はぎこちないが現在のグループに表示してあるウィンドウを
すべてfnextにずらすもの作ったんだけど需要ありますか?
- 51 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 16:22:49.31 ]
- >>48
↓ >>46
- 52 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 17:03:18.43 ]
- >>50
stumpwm 改造の参考に、見てみたいです。
- 53 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 18:38:25.47 ]
- >>52
参考にならないほどのやっつけですが www.dotup.org/uploda/www.dotup.org1828277.gz.html 自分用としてはいまのところ問題ないです。
- 54 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 19:55:32.39 ]
- >>53
stumpwmってしらなかった、wmiiからこっちにひっこそうかしら
- 55 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 21:04:37.62 ]
- Lispを今日始めたものなのですが、
(defun foo (lst) (car lst)) (setq var (list 2 4 6 8 1 3 5 7 9 10) ) (foo var) でfooという関数はないと言われるのですが、何故でしょうか?
- 56 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 21:12:22.21 ]
- >>55
Mac OS X 上の CCL だと実行出来ましたよ
- 57 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 21:13:39.35 ]
- (setq var (list 2 4 6 8 1 3 5 7 9 10) ) ってなんか意味あんの?それを挟まなければエラーが出ないとか?
- 58 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 21:14:26.54 ]
- う、見間違えた。すまん
- 59 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 21:44:57.55 ]
- ideone.com/TeUAw
?
- 60 名前:55 mailto:sage [2011/07/31(日) 21:49:00.12 ]
- おお…本当ですね
xyzzyというエディタ付属のLispが手軽と聞いたのでそちらでやっていたのですが、そちらだと怒られるようで・・・ ありがとうございます
- 61 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 22:08:29.48 ]
- 便乗して...
ideone.com/fu2He これが動かないのは何故でしょう?
- 62 名前:55==61 mailto:sage [2011/07/31(日) 22:13:24.18 ]
- 名前入れ忘れた
エラー文を調べたら局所変数にアクセスが云々と出てきたのですが、 外からアクセスはしてないように見えるのです
- 63 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 22:49:44.40 ]
- >>61
CL はlisp-2だから ideone.com/lLwg2 あと、>>55 はxyzzyでも動くよ。 評価し忘れとかじゃない?
- 64 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 23:01:58.21 ]
- >>55
>>63に補足すると、*scratch*で (defun foo (lst) (car lst)) を入力したらC-j(ctrlを押下中にj) (setq var (list 2 4 6 8 1 3 5 7 9 10) ) を入力したらC-j(ctrlを押下中にj) (foo var) を入力したらC-j(ctrlを押下中にj) このようにして一行ずつC-jを押すこと
- 65 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 02:44:38.45 ]
- >>61
funcall の後ろに#’つけたら動いたよ
- 66 名前: 忍法帖【Lv=12,xxxPT】 mailto:sage [2011/08/03(水) 06:10:12.50 ]
- いや、なんつーか、>>63も>>65も
(defun qsort (lst) ... (append (qsort ...) ...) ...) って感じに呼べることをまず教えてやれよ……。
- 67 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 06:43:28.89 ]
- こんな感じ。
ideone.com/fPEnC
- 68 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 09:34:28.69 ]
- ECLだとquicklispからdrakma使えませんでした。
解決エロい人たすけて
- 69 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 09:37:08.37 ]
- 解決エロい人 >> 解決できるエロい人 に直してください
- 70 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 10:30:59.09 ]
- >>68
エラーメッセージは?
- 71 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 11:29:14.64 ]
- Your Lisp does not support weak key hash-tables.
[Condition of type SIMPLE-ERROR] ECL 10.3.1 をapt-get install で入れて使っています。
- 72 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 14:00:50.29 ]
- まんま書いてるじゃないですかー!
Drakmaが利用してるCL+SSLってライブラリがあって、 さらにそれが利用してるtrivial-garbageというライブラリが出してるエラー。 ECLがウィークハッシュテーブルに対応してないから出てる。 あるいは、ECLが実はウィークハッシュテーブル使えるってんなら、 簡単に使えるようになるから、バグレポートでもすればすぐ修正してくれると思う。 報告するのはDrakma相手じゃなくて、trivial-garbageの方ね。
- 73 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 14:21:48.11 ]
- ttp://osdir.com/ml/lisp.ecl.general/2008-04/msg00171.html
読むと、ウィークハッシュテーブルに対応する予定はなさそうなんで、 ECL側の修正は割と無理っぽいんじゃないかと思う。 考えられる対応策: - CL+SSLに報告してECLだけ特別扱いしてもらう - curlのプロセスを実行して出力を読む - libcurlをFFI経由で使う - 別の処理系を使う - 別の言語を使う
- 74 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 15:37:21.44 ]
- >>72,73
今後はdrakmaを使う時には別の処理系を使うようにします いろいろありがとうございました
- 75 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 16:18:55.06 ]
- 解決エロい人がいるスレですね。
- 76 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 16:44:41.51 ]
- かいけつゾロリとか快傑ズバットの亜種か。
- 77 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 19:43:24.53 ]
- cl-annotで@export はしっかりできてるんですが@docなど他の使い方が分からない
cl-annotが使えるパッケージ内で(annot:enable-annot-syntax)を書くだけじゃもしや駄目? Undefined function SCRIPT-TES::DOC called with arguments ("shellscript ls ==") . [Condition of type CCL::UNDEFINED-FUNCTION-CALL]
- 78 名前:77 mailto:sage [2011/08/04(木) 20:09:57.53 ]
- 解決しました。
〜.asd のファイルには書かなくていいけど〜.lispの方に付け加えるだけで良かったみたいです。
- 79 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 21:28:33.55 ]
- cl-annotとかは、
ttps://github.com/arielnetworks にあるコードでいっぱい使ってるので、見ると参考になると思う。
- 80 名前:デフォルトの名無しさん mailto:sage [2011/08/05(金) 00:15:37.50 ]
- >>53
自分のやり方が違うかもしれないが、テキストファイルにならない。
- 81 名前:デフォルトの名無しさん mailto:sage [2011/08/05(金) 00:55:25.96 ]
- >>80
dump-group-to-fileで作られるファイルのことですか?
- 82 名前:デフォルトの名無しさん mailto:sage [2011/08/05(金) 03:50:16.17 ]
- ll.la/LQ4F
中のファイルすべてHOMEにつっこんで sbclにquicklispインストール、cl-ppcreとtrivial-shellも一度quickloadで再起動でいけるはず。
- 83 名前:デフォルトの名無しさん mailto:sage [2011/08/05(金) 10:53:30.37 ]
- abclでmaximaが動くのはいつになるんだ
- 84 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 00:53:45.82 ]
- 連想リストからある値の取得がうまくいかないので質問です。
以下のような状況です。 (setq list_a (list "a0" "a1" "a2")) (setq list_b (list "b0" "b1" "b2")) (setq list_c (list '('a . list_a) '('b . list_a) )) ここまで。 で、list_cに対して (cdr (car list_c)) を評価すると list_a が取れるのですが (car (cdr (car list_c))) にして、list_aの"a0" を取得したいのですが評価するとbacktraceになってしまいうまくいきません。 これはどうすればいいんでしょうか?
- 85 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 01:15:31.43 ]
- >>84
なぜ二重にクォートしたし。 (setq list_c (list `(a . ,list_a) `(b . ,list_a))) ;; あるいは (setq list_c (list `(a ,@list_a) `(b ,@list_a))) (setq list_c (list (cons 'a list_a) (cons 'b list_a))) (car (cdr (car list_c))) ;; なぜ連想リストのアクセスにassocを使わないのか (cadr (assoc 'a list_c)) ;=> "a0" あと、Lisp界ではx_y_zじゃなくてx-y-zみたいに区切るのが普通。
- 86 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 01:17:20.15 ]
- ああ、一番普通なの忘れてたわ。
(setq list_c `((a ,@list_a) (b ,@list_a)))
- 87 名前:84 mailto:sage [2011/08/12(金) 01:23:54.85 ]
- >>85
ありがとう、理解できました。
- 88 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 02:27:11.12 ]
- labelsでエラーがでるのですが理由がわからいので教えてください。
scratchで以下の式を評価すると正常に動くのですが (defun foo () (labels ( (bar () (print "foo test") ) ) (bar) ) ) (foo) で "foo test"が表示される これをこのまま .emacsファイルに記述するとbacktraceになってしまいます。 ↓メッセージ Debugger entered--Lisp error: (void-function labels) (labels ((bar nil ...)) (bar)) foo() これはなぜでしょうか。またどのように解決したらよいでしょうか?
- 89 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 02:38:59.99 ]
- >>88
そのプログラムの前に (requre 'cl) を付けると解決出来るんじゃないかな
- 90 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 02:50:37.63 ]
- もちろん >>89 は (require 'cl) の typo です。。。
Emacs Lisp と Common Lisp は別物なので、もし emacs lisp を勉強したいなら、 Emacs Lisp 3 hibari.2ch.net/test/read.cgi/tech/1191875993/ に行くと良いと思います。 Common Lisp を勉強したいなら、Common Lisp 用の環境を整えると色々と 捗ると思います。
- 91 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 03:18:26.75 ]
- >>90
ありがとう解決しました。 今後はEmacs Lispのほうで聞きますね。
- 92 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 22:39:41.10 ]
- 時代はlispよりもhaskell
教養としてのプログラミングならこっちを勧めたい
- 93 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 03:07:18.49 ]
- 自分の知る限り、Haskell は少なくとも 5 年前には注目を受けていたし、
Haskell に無い Lisp の特徴として S 式とマクロは知っておいた方が良いと思われ
- 94 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 12:52:53.95 ]
- lispが理解できないとHaskellは無理だと思う
- 95 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 18:01:20.91 ]
- Haskellが無理ならLispも無理だろう
- 96 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 18:08:14.77 ]
- >>92-95
忍者より酷い
- 97 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 18:10:31.20 ]
- どっちか勉強するのにもう一つの知識が必要みたいな議論がおかしい
まっさらな状態で今はじめるならHaskellの方が得るものは大きい
- 98 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 18:32:14.29 ]
- そんな単純な比較が可能とは思えないが…
- 99 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 18:46:49.49 ]
- カレーとおにぎりを比べるようなものだな
- 100 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 18:56:45.41 ]
- で、どっちがカレーなんだ
- 101 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 19:02:30.24 ]
- Haskellの説明でカリー化ってしょっちゅうくらいだからやはりHaskellがカレーじゃなかろか?
;;;ごめんなさい、ワタシが悪うございました。
- 102 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 19:24:52.71 ]
- >>101
俺も同じ事思ったから大丈夫だ
- 103 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 20:02:39.45 ]
- 別にどっち先に勉強しても、もう一方を勉強できないわけじゃないんだから。
好きな方先にやって後で別の方やれば良いよ。 HaskellだけやってたらHaskell自身の長所を理解できないし、 LispだけやってたらLisp以降に生まれたパラダイムを取り込めないじゃん。
- 104 名前:デフォルトの名無しさん mailto:sage [2011/08/17(水) 03:41:17.91 ]
- おにぎlispってなんかいいな
- 105 名前:デフォルトの名無しさん mailto:sage [2011/08/17(水) 06:47:24.00 ]
- haskellカレーにおにぎlisp
仲良くやっていけそうな気がする
- 106 名前:デフォルトの名無しさん mailto:sage [2011/08/17(水) 13:00:47.05 ]
- J( 'ー`)し<残さないで食べなさいね。
- 107 名前:デフォルトの名無しさん mailto:sage [2011/08/17(水) 16:11:13.82 ]
- 最近のコンビニにはカレー化おにぎりというのがあってだな
- 108 名前:デフォルトの名無しさん mailto:sage [2011/08/17(水) 16:11:51.86 ]
- なぜ「化」という文字が入る…
- 109 名前:デフォルトの名無しさん mailto:sage [2011/08/19(金) 09:42:20.53 ]
- >>83
command line版Maximaは(run_testsuite()を通過する意味で)動いてる筈。 ttp://abcl-dev.blogspot.com/2010/10/maxima-on-abcl-full-pass-on-test-suite.html ABCL版Maximaは、GCL版Maximaより遅かった様な…。
- 110 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 10:59:32.41 ]
- 保守
- 111 名前:デフォルトの名無しさん [2011/09/06(火) 04:49:27.30 ]
- つかS式と基本5関数さえあれば何でもできるのに何でlispってアホみたいに方言多いの?
- 112 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 04:59:00.08 ]
- 流石に純LISPだけでは実用性に欠けるから
よく使う関数を各社が実装した結果
- 113 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 05:42:33.67 ]
- たぶんルールが少ないほうがバリエーションは増えるんだと思う
かつての2Dシューティングゲームみたいに
- 114 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 05:54:29.02 ]
- >>111
チューリングマシンでプログラミングしてきたら答えが分かると思うよ。 >>111は何か他の所でまんま同じな文章見た気がするんでコピペだろうけど、 Lispの方言だけ何か特別視するのって凄いナンセンス。 ALGOLの方言とかいくつあるんだよとか逆に聞きたい。
- 115 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 09:04:36.79 ]
- >>111 「S式と基本5関数さえあれば何でもできる」が嘘
まずは少なくとも cond か if の特殊形式がないとチューリング完全じゃないし、 lambda が無いのも微妙だろう。
- 116 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 22:22:01.52 ]
- それだけではなんでこんなに方言があるのかという質問の答えとして弱いのではないか?
- 117 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 22:50:56.94 ]
- 処理系を作るのが簡単だから
- 118 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 23:20:31.02 ]
- 2進数の文字列から10進数に変換するにはどうしたらいいか教えてください。
- 119 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 23:25:36.72 ]
- (parse-integer "1010" :radix 2)
- 120 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 00:20:57.67 ]
- >>119
ありがとうございます。
- 121 名前:デフォルトの名無しさん [2011/09/07(水) 18:16:43.66 ]
- リスプの処理系より簡単な演算器もったスタックマシンのほうが簡単なきがしましたよ。
アセンブラなんて1行1命令で翻訳してだけだから原始的なものならこっちも簡単でした。
- 122 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 18:20:18.73 ]
- 言語処理系を作るなら、まずForth処理系でも作ってみるのは、悪くないよね。
|

|