【入門】Common Lisp その8【質問よろず】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2011/07/06(水) 17:15:15.55初心者のQ&A
本スレでは恥ずかしくて聞けない人のQ&A
本スレは高度すぎて割り込めない人のQ&A
linuxでなくてwindowsでやりたいんですが・・・Q&A
lispを使用してC#やJAVAの代替にするための方法(おまけ)
ま、ゆっくりたりましょう。
「いいものの本質は、いかなる時代においても変わらない」byパワーズ
(list
(url http://pc8.2ch.net/test/read.cgi/tech/1101386936/l50 :part 1)
(url http://pc11.2ch.net/test/read.so/tech/1140012484/l50 :part 2)
(url http://pc11.2ch.net/test/read.so/tech/1181479267/l50 :part 3)
(url http://pc11.2ch.net/test/read.cgi/tech/1201402366/l50 :part 4)
(url http://pc11.2ch.net/test/read.cgi/tech/1215834213/l50 :part 5)
(url http://pc12.2ch.net/test/read.cgi/tech/1234884136/l50 :part 6)
(url http://hibari.2ch.net/test/read.cgi/tech/1270370267/l50 :part 7)
□テンプレート置き場□
ttp://wiki.fdiary.net/lisp/ (id:guest pass:cl)
0175デフォルトの名無しさん
2011/10/12(水) 16:47:15.570176デフォルトの名無しさん
2011/10/12(水) 16:53:12.06http://landoflisp.com/
0177デフォルトの名無しさん
2011/10/12(水) 17:09:02.980178デフォルトの名無しさん
2011/10/12(水) 19:37:39.35開いた瞬間にMade by secret alien technologyだったw
0179デフォルトの名無しさん
2011/10/12(水) 22:58:13.41類書が全く思いつかないすごい世界だ
0180デフォルトの名無しさん
2011/10/12(水) 23:02:53.030181デフォルトの名無しさん
2011/10/12(水) 23:59:37.28LISPのトンデモ歴史に始まり、簡単なAIやWEBサーバー開発なども学べる。
英語は平易。
0182デフォルトの名無しさん
2011/10/13(木) 00:10:38.65http://youtu.be/HM1Zb3xmvMc
0183デフォルトの名無しさん
2011/10/13(木) 01:12:43.71kindle価格で29ドル
早速読んでみるわ
0184デフォルトの名無しさん
2011/10/13(木) 22:45:02.02日本語の萌系の学術書?も翻訳してるし、
You learn a haskell for great good! (最近話題のHaskell書)の
本も出版してる。You learn ~ も簡単な英語で書かれてるよ。
0185デフォルトの名無しさん
2011/10/14(金) 07:07:25.64Hacking第2版のパブリッシャーでもあるのか
0186デフォルトの名無しさん
2011/10/14(金) 07:39:00.94オーム社は「マンガでわかる銀河系」も出すべきだなw
0187デフォルトの名無しさん
2011/10/14(金) 13:31:36.12サンクス!
お礼が遅れてすまんかった。
0188デフォルトの名無しさん
2011/10/16(日) 01:26:54.320189デフォルトの名無しさん
2011/10/16(日) 02:04:44.48http://www.franz.com/products/prolog/
0190デフォルトの名無しさん
2011/10/16(日) 09:42:50.700191デフォルトの名無しさん
2011/10/18(火) 23:48:13.920192デフォルトの名無しさん
2011/10/19(水) 00:54:57.34よく使われてるライブラリで共通で使われてたりするのかな?
xUnit,xSpec,quickcheck,Test::Moreみたいな言語間で広まってるテストフレームワークも
http://www.cliki.net/test%20framework
http://google.co.jp/search?q=commonlisp+test
0193デフォルトの名無しさん
2011/10/19(水) 01:02:25.05最近公開されたものだし、標準ではないけどね。
0194デフォルトの名無しさん
2011/10/19(水) 07:32:48.73比較的多く使われてるのはFiveAMとStefilかなー。
機能的にも割と似たような感じ。ただ、Stefilはドキュメントがない。
特に拘りがないならどっちか使っとけば良いと思う。
Clackの中の人が作ってるCL-TEST-MOREなんかは、TAPが好きなら良いかも。
あと、複雑なテストが必要ない場合、自分で書いてる人も割といるように見える。
上で出てない追加の情報源とか。
http://cl.cddddr.org/index.cgi?%a5%e9%a5%a4%a5%d6%a5%e9%a5%ea
http://cl.cddddr.org/index.cgi?FiveAM
http://aperiodic.net/phil/archives/Geekery/notes-on-lisp-testing-frameworks.html
0195デフォルトの名無しさん
2011/10/19(水) 07:54:01.51ただ、中の人が日本人なので、日本語の解説もあるけど。
https://github.com/fukamachi/cl-test-more
http://e-arrows.sakura.ne.jp/2010/11/cl-test-more.html
http://tips.lisp-users.org/common-lisp/index.cgi?CL-TEST-MORE
clojure.testっぽいのはButterだと思う。使ったことないから使い勝手は分からない。
こっちは日本語のREADME付き。
https://github.com/yuushimizu/butter
http://d.hatena.ne.jp/yuushimizu/20110922/1316627415
0196デフォルトの名無しさん
2011/10/25(火) 06:28:23.810197デフォルトの名無しさん
2011/10/25(火) 06:43:27.220198デフォルトの名無しさん
2011/10/25(火) 21:23:05.33おれがコンパイラとか興味持ったのも、全部Lispのおかげなんだ。
Lispの父の魂よ安らかに眠れ。
0199デフォルトの名無しさん
2011/10/25(火) 21:48:23.670200デフォルトの名無しさん
2011/10/25(火) 22:44:12.27ジョン・マッカーシー
http://wbb.forum.impressrd.jp/feature/20071212/515
0201デフォルトの名無しさん
2011/10/27(木) 16:40:48.72時折聞くのですが、そうなんですか?
自分はオブジェクト指向を型と引数の型によって振る舞いを変える関数の組み合わせで理解しており、
関数プログラミングとオブジェクト指向プログラミングは直行するのではないかと思っているのですが。
0202デフォルトの名無しさん
2011/10/27(木) 17:29:29.77どうしてもオブジェクト指向の、「物」指向、副作用による状態の変化を利用したスタイルから、
普通にはそれを使えなくなる純粋関数型に、自分の思考を持ち込むか、という技の掛け方、
というか、そのへんは実際にやってみて慣れればなんということないんだけど、説明するのは
難しいので。
0203201
2011/10/27(木) 17:34:38.20一度しか代入しないスタイルへの切り替えの難しさから
そういう意見が出てくるって事ですね
ありがとうございます
0204デフォルトの名無しさん
2011/10/27(木) 17:43:50.90メッセージパッシング系は上手く混合してるでしょ。
0205デフォルトの名無しさん
2011/10/27(木) 19:00:26.69技術書の「Concepts, Techniques, and Models of Computer Programming」
(CTMCP:コンピュータプログラミングの概念・技法・モデル)で複数の
計算モデルが解説されているが、一般にオブジェクト指向と呼ばれている言語は、”状態”
を内部に持って、書き換え(副作用を起こし)ながら処理を進めるモデル。
関数型と呼ばれる言語の多くは、数学での集合・写像がベースになったモデル。
従って、処理の大部分を副作用ではなく、集合への写像(関数適用と思っていい)で出来る。
相性というより、計算モデルが全く違うので、混在は非効率。
なお、CTMCPには他のモデルも解説されている。
0206デフォルトの名無しさん
2011/10/27(木) 20:28:15.59のxはこのまま活用するのですか?
LISP触って日が浅いのでまだ分かりづらくて…
0207201
2011/10/27(木) 20:51:23.53ありがとうございます。
確かに狭義の定義では相容れませんね。
JavaやC++でラムダ計算は出来そうにもありませんし、
Haskellでは代入自体が不可能ですし。
0208デフォルトの名無しさん
2011/10/27(木) 20:54:20.61「xはこのまま活用する」とはどういう意味でですか?
0209デフォルトの名無しさん
2011/10/27(木) 21:16:05.58すみません、少し読み返してみたらsetqでxは0に定義されていました・・・orz
少し落ち着いてから勉強しなおします。
0210デフォルトの名無しさん
2011/10/27(木) 21:21:24.930211デフォルトの名無しさん
2011/10/27(木) 23:10:17.78と思ったけど直前に(setq x 0)があるから束縛されてた,問題なかった,という意味?
0212デフォルトの名無しさん
2011/10/27(木) 23:46:20.82不必要に複雑になりがちで。
0213デフォルトの名無しさん
2011/10/28(金) 00:49:20.17clojureの宣伝文句は、OOの目的を別なやり方で、だとか。
http://thinkrelevance.com/blog/2009/08/12/rifle-oriented-programming-with-clojure-2.html
http://www.geidai.ac.jp/~marui/clojure/rationale/index.html
http://www.geidai.ac.jp/~marui/clojure/state/index.html
clとclojureちょっとかじったのけど、scheme知らないのでRacket使ってみようかな。
0214デフォルトの名無しさん
2011/10/28(金) 06:22:21.58個人的にはHaskellの型と型クラスの扱いが
一番綺麗に整理されてていいと思う
0215デフォルトの名無しさん
2011/10/28(金) 10:53:54.69みたいなことをOCamlの人が書いてた気がする。
0216デフォルトの名無しさん
2011/10/28(金) 15:05:25.95データ型と振る舞いの分離、データ型の継承なし、など。
0217デフォルトの名無しさん
2011/10/29(土) 06:37:12.03(let ((x2 0) (x3 0))
(setq x2 (2jou x))
(setq x3 (* x2 x))
(* x2 x3)))
5JOU
が理解できません。どなたか簡単に説明をお願いいたします。
0218デフォルトの名無しさん
2011/10/29(土) 08:28:04.20酷い関数名だなw
2乗する関数2jouってのがどこかに定義されてて、
xを5乗するってのを 2乗掛け(2乗掛け1乗)で実行してるだけだと思う。
ただ普通はそんな酷い書きかたしないよ。何の例?
0219デフォルトの名無しさん
2011/10/29(土) 08:50:47.56(destroy 'war-freak))
(crazyp 9jou-lover)
t
0220デフォルトの名無しさん
2011/10/29(土) 08:53:13.73(defun 5jou (x)
(let ((x2 0) (x3 0))
(setq x2 (2jou x)) ; x2 = x^2
(setq x3 (* x2 x)) ; x3 = x2*x = x^3
(* x2 x3))) ; x2 * x3 つまり x^5
0221デフォルトの名無しさん
2011/10/29(土) 09:49:42.36ある入門書です。
0222デフォルトの名無しさん
2011/10/29(土) 09:55:29.50ありがとうございました。
0223デフォルトの名無しさん
2011/10/29(土) 10:29:38.690224デフォルトの名無しさん
2011/10/29(土) 10:52:42.97(defun 5jou (x)
(let ((x2 (2jou x)))
(let ((x3 (* x2 x)))
(* x2 x3))))
0225デフォルトの名無しさん
2011/10/29(土) 11:14:37.940226デフォルトの名無しさん
2011/10/29(土) 12:36:07.35(* x x x x x))
0227デフォルトの名無しさん
2011/10/29(土) 14:10:16.47すぐに窓から投げ捨てたほうがいいレベル
変数名にx1,x2,...とかつけちゃう本は大抵ダメ
学生が作ってくるプログラムでたまにこういうのあるよね
全ての関数名がf1,f2,...で変数名がx1,x2,...
0228デフォルトの名無しさん
2011/10/29(土) 14:12:01.20_____
.ni 7 / \ ご冥福をお祈りします
l^l | | l ,/) / /・\ /・\ \ .n
', U ! レ' / |  ̄ ̄  ̄ ̄ | l^l.| | /)
/ 〈 | (_人_) | | U レ'//)
ヽっ \ | / ノ /
/´ ̄ ̄ ノ \_| \rニ |
`ヽ l
0229デフォルトの名無しさん
2011/10/29(土) 14:13:31.37(defmacro gogogo (n)
(let ((jo-name (intern (concatenate 'string (prin1-to-string n) "JOJO"))))
`(defun ,jo-name (x)
(let ((x-val x))
(apply #'* (make-list ,n :initial-element x-val))))))
0230デフォルトの名無しさん
2011/10/29(土) 14:15:36.49(flet ((hoge (....
とか(実際には frob とかだが)...
いいんじゃねぇの名前なんてどうでも....
0231デフォルトの名無しさん
2011/10/29(土) 14:16:11.420232デフォルトの名無しさん
2011/10/29(土) 14:32:35.97しておかないと、手直しする気すら起こらんぞ。
0233デフォルトの名無しさん
2011/10/29(土) 14:41:42.31名前は大事でしょ。
例えば関数の名前付けに困るときは、
処理をまとめる粒度がおかしかったり、
別個の処理をまとめてやっちゃってることが多い。
0234デフォルトの名無しさん
2011/10/29(土) 16:33:59.960235デフォルトの名無しさん
2011/10/29(土) 16:43:56.57読み込みが一瞬で終わってデバックするところが分からないから
CLISP使っている人でどうしたらいいか分かる人いない?
0236デフォルトの名無しさん
2011/10/29(土) 17:02:39.29すげーけどあまり関わりたくないな
0237デフォルトの名無しさん
2011/10/29(土) 17:03:58.19読み込み速度とデバッグの関係がわからない。なにをどうしたいんだ?
0238デフォルトの名無しさん
2011/10/29(土) 17:11:13.44俺の作ったデータを読み込む
↓
エラーがあるから無論エラー文が返される
↓
しかし速すぎ見えないワロタwww
みたいな流れ。
0240デフォルトの名無しさん
2011/10/29(土) 17:23:28.68それって gensym みたいだ
lispや関数型言語で悩むのは関数の名前だというのは避けられないな。
特に、英語のボキャブラリの足りなさと前置詞の使い方の理解不足が
日本人にとって鬼門だと思ってるよ。
0241デフォルトの名無しさん
2011/10/29(土) 17:26:48.12をすれば混乱するところはずいぶん減るよ。
意識してプログラミングしてみな。けっしてdefunの中身をでかくするんじゃないぞ
0242デフォルトの名無しさん
2011/10/29(土) 17:32:22.33だから、1つの関数に5行で収まることを意識した作りをしてみればいい。
condやcase/ifを使うと大きくなりがちだけど、条件のところを上手に
関数化すると関数の膨らみは抑えられるし、デバッグもあとで楽になる。
traceを使うときも条件分けした所でどこに富んだかは一目瞭然になるしね。
手続きグセなのか関数の中にオールインワンの方向に作っちゃう人はいるけど
あれは、デバッグで悩むことになるからやめたほうがいいよ。
優れたlisperのソースでも長いものはあるけど(macroでmacroや関数をまとめて
作るような場合は特にね。)最初は小分けから、最適化するに連れて色々変える
ことを意識してったほうが効率はいい。
0243デフォルトの名無しさん
2011/10/29(土) 17:32:29.26前者で合ってる
0244デフォルトの名無しさん
2011/10/29(土) 17:37:04.27S式眺めてると関数なんだかシンボルなんだかわからなくなる
ってなってた頃はx1とか変数然としてて読みやすかった記憶がある
0246デフォルトの名無しさん
2011/10/29(土) 18:37:19.17なにが速いんだ? >>239 の推測どーりなら、
コンソールが閉じる => コマンドプロンプトから起動すれば?
文字が流れちゃう => エラーでたら止まるようにプログラムしとけば?
という感想。状況がいまいちわからん。
0247デフォルトの名無しさん
2011/10/29(土) 21:39:37.13開発効率が十倍以上変わってくるぞ。
0248デフォルトの名無しさん
2011/10/29(土) 21:44:27.07その昔 グレアムはviでclispを・・・
ということがあったようだ。slimeがあまりにもいいからな。
いまはslimvというvimのものがあるが。
0250デフォルトの名無しさん
2011/10/29(土) 21:55:13.75だとすると、slime+clisp がついてくるlispcabinetが
おすすめ
インストールするだけで環境が整うよ
0251SCHEME餃子 ◆8X2XSCHEME
2011/10/29(土) 22:01:13.63実質的には実用的な開発環境が Emacs か Vi しかないっつーのは環境をととのえるとこからめんどくさくて初心者にはハードルが高いよな。
Lispbox 使えよ。
0252SCHEME餃子 ◆8X2XSCHEME
2011/10/29(土) 22:02:08.85導入の楽さでは Lispbox よりも上っぽいな。
0253デフォルトの名無しさん
2011/10/29(土) 22:02:45.70http://www.youtube.com/watch?v=dSofx9hur1Q
見てみたけど面白いね。vimでここまで出来るなら、使い勝手がよさそう
0254デフォルトの名無しさん
2011/10/29(土) 22:16:23.99そもそもwindowsで関数型言語をやる環境は整えるのが大変だわ。
msのところに本拠があるはずのhaskellだってlinuxのほうが扱いやすい。
windowsはさっさと捨てて、linuxを使ったほうが変な悩みは減るよ。
0255デフォルトの名無しさん
2011/10/29(土) 22:18:37.60Emacs Lispも大概だけど、曲がりなりにもLispだからまだマシ。
という煽りはさておき、LispboxとかLisp Cabinetとかって、
Emacsに薄い皮を被せただけだから、トラブルとか起きると、
結局Emacsの深い所に突っ込んで行かないといけなくて、
そんなにありがたくないんだよね。インストールが楽なだけで。
RacketみたいにIDEも付けてくれると、住み分けできると思うんだけど、
そっちの方向に期待できるのは商用かCCLくらいしかない。
0256デフォルトの名無しさん
2011/10/29(土) 22:42:10.35(環境設定のあたりとか)
現状で満足する人が大多数だから、そうはならないだろうね
dual bootできない環境ならvirtual machine 経由でlinuxを動かすのが現実的な案か
0257デフォルトの名無しさん
2011/10/30(日) 03:39:26.35綺麗にまとまっているように見えるけど、モードのあるviでREPLって操作性があんまり想像できんわ
上のウィンドウで直接入力してEvalしたりとかもできるんだろうか?
Clojureつかったjettyサーバがトラブった時にemacs入れなくても現場デバッグできるからうれしいんだが。
0258デフォルトの名無しさん
2011/10/30(日) 03:48:29.45Ctrl-Wwでウインドウを移動して、モードを変える 書き込みはファイルをいじる時と同じ。
Clojureも対応してるし、実はClojureように細工して使ってる。笑
0259デフォルトの名無しさん
2011/10/30(日) 12:46:20.680260デフォルトの名無しさん
2011/10/30(日) 19:11:51.71VirtualBoxかqemuで充分だし
0261デフォルトの名無しさん
2011/10/30(日) 19:22:19.92挿入モードのキーマップで普通は入力しないようなキーに
評価コマンドを割り当てればいいんじゃね
Emacsのsexpと同じような「括弧の釣り合いが取れる」範囲指定も標準装備してるし
(範囲と操作を直交するものとして定義しているから
範囲を受け付けるように操作を定義すればどんな範囲指定とも組み合わせられる。
逆に新しい範囲を定義すれば範囲を受け付けるどんな操作とも組み合わせられる)
0262デフォルトの名無しさん
2011/10/31(月) 08:17:52.340263デフォルトの名無しさん
2011/10/31(月) 10:07:16.39実践Common LispもWebアプリとか現代的な例があっていいと思う
それはそうとだれかLand of Lisp読んでみた奴いない?
http://landoflisp.com/
なんだか楽しそうなんだがwww
0264デフォルトの名無しさん
2011/10/31(月) 13:29:29.19絶版だけど、すごい!Lisp
0265デフォルトの名無しさん
2011/10/31(月) 13:30:05.900266デフォルトの名無しさん
2011/10/31(月) 16:55:51.200267デフォルトの名無しさん
2011/10/31(月) 19:15:09.27あのイラスト一杯は行ってるけど普通にLispの本だったよ
0268デフォルトの名無しさん
2011/10/31(月) 20:45:21.07かなり良い本だから、そのうち邦訳されると思ってる。
小学校の指定教科書にしたいくらいだ。
0269デフォルトの名無しさん
2011/10/31(月) 21:00:47.07押さえられててもおかしくないもんな。
0270デフォルトの名無しさん
2011/10/31(月) 22:10:31.570271デフォルトの名無しさん
2011/10/31(月) 22:34:19.710272デフォルトの名無しさん
2011/10/31(月) 23:42:40.19http://cl-cookbook.sourceforge.net/win32.html
このページの初めのサンプルスクリプトが動かないのですが
(lispworks personal edition version 6.0)
どう改変すれば動くようになるのでしょうか
0273デフォルトの名無しさん
2011/10/31(月) 23:45:37.760274デフォルトの名無しさん
2011/10/31(月) 23:50:05.14■ このスレッドは過去ログ倉庫に格納されています