- 1 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 11:52:46 ]
- 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))
- 752 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 01:19:52 ]
- SICPの4章のプログラムを動かしたときは感動があった。
でもNorvigのAI本を読んだときは良本とは思ったけど感動はしなかった。 やっぱり時代によって評価って変わってくると思う。
- 753 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 05:17:40 ]
- >>746
当時も今も、Lispは文字列処理はあまりしてない。 SNOBOL4は良く使われていたが。今はperlかな。
- 754 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 05:23:30 ]
- Wintonの「Artificial Intelligence」、
安西祐一郎他「LISPで学ぶ認知心理学」、 "Artificial Intelligence"はマッカーシーの造語、 SHRDLUはLispで書かれていた、 あたりが大きかったと思う。> 人工知能言語
- 755 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 08:59:22 ]
- maximaはlisp
- 756 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 14:06:53 ]
- 文字列処理というとemacsが思い浮かぶ
- 757 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 14:09:04 ]
- >>750
なんだ、お前の人生の匂いか。次から主語は明確にしてくれ。
- 758 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:07:02 ]
- Dick Gabrielは、
743の ・未知の分野への適性が高い事の実例として人工知能を挙げた ってどっかでいってた記憶がある。 Paul Grahamも似たようなこといってるよね。 つまり、AIとかはどうでも良かったりするのかもしれない。
- 759 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:54:50 ]
- >>753
> 当時も今も、Lispは文字列処理はあまりしてない。 別に誰も Lisp で文字列処理をガンガンやってるなんて書いてないんだが。 レスする前に、文章をよく読む訓練した方がいいと思うよ。
- 760 名前:759 mailto:sage [2008/06/07(土) 02:03:37 ]
- アンカーミス
×>>753 ○>>759
- 761 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 02:44:45 ]
- >>759
別に誰も、誰かが「Lisp で文字列処理をガンガンやってると書いた」なんて書いてないと思うよ。
- 762 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 02:49:46 ]
- 結局 >>753 は >>746 に何を伝えたかったのだろう
あまり話が繋がっている様には見えないけど…
- 763 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 02:58:31 ]
- 例え、話がつながってなくてもそれぞれが言いたい事を言う。
それが2ch(女性の世間話みたいなもん)。
- 764 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 03:02:08 ]
- つう事で、真意を掘り起こしても何も無いから次へ行こうぜって事で良いよね?
- 765 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 08:44:26 ]
- 次に行く先が無い
- 766 名前:741 mailto:sage [2008/06/07(土) 11:18:17 ]
- >>742
いろいろ煽り書いてたのは私ではありません…(汗
- 767 名前:741 mailto:sage [2008/06/07(土) 11:32:45 ]
- 皆さんいろいろとありがとうございました。
まとめると、 (1)当時、未知の分野への適性が高い実例として人工知能を挙げた (2)ただし、肝心の「人工知能」自体は現在でも実現困難である こんなところでしょうか?
- 768 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:54:58 ]
- >>760-762
夜中に人の自演までしてご苦労さん。 > 別に誰も、誰かが「Lisp で文字列処理をガンガンやってると書いた」 > なんて書いてないと思うよ。 たったら、なんで >>753 へのレスで「Lispは文字列処理はあまりしてない」 なんて書くんだ? > あまり話が繋がっている様には見えないけど… 自分が理解できないレスはスルーしたら? 文章よく読む訓練しても無駄な奴もいるからさ。(w
- 769 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:03:37 ]
- こりゃダメだ
↓次の話題どぞー
- 770 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:47:39 ]
- OnLispを読んで、少し大きいプログラムを書いてみたくなったんですが
Windows厨にはどの処理系がおすすめですか 今はxyzzyでちょろちょろプログラムしてみてます。
- 771 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 15:01:05 ]
- sbclかclisp+emacs+slime こっちは最初の設定が面倒かもしれない
ACLのExpress版(要登録) できが良すぎて製品版が欲しくなってもしらない。
- 772 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 15:09:21 ]
- windowsなら
xyzzyで学習してるのもいいと思うよ。ただし、common lisp完全準拠ではない。 準拠を考えるならeclipse+cupsか商用系(acl lispworks)あたりが導入が一番楽じゃないか。 本格的に使うなら、仮想環境でもいいからlinux系を導入してそこで構築する方が楽だよ。 windowsはcommon lispのプログラミングに向いてないよ。
- 773 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 15:21:16 ]
- 一番良さそうなのは、xyzzyを国際化して、ユーザーを増やすことだな。そうすれば、
emacsからslimeを移植する人は出てくると思うよ。そうすると、clispだろうがsbclだろうが 導入はグッと楽になるだろうな。 xyzzyのライセンスはどうなってるのか知らないけど、あれが日本だけで収まってるのは もったいないな。ということは思う。
- 774 名前:770 mailto:sage [2008/06/07(土) 16:09:23 ]
- 色々ありがとうございます。
比較的楽に環境が構築したいというのもあり お二方おすすめのACLについて、Express版いれてみようかなと思います。 WindowsはLISP向きでないというのは、Win厨にはちとショックですが;
- 775 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:00:45 ]
- >>773
先日ソースが公開されましたから、あとは神を待つだけでしょうか。
- 776 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:46:34 ]
- >>760
このレスって何なんですか? metacircular レス?
- 777 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:48:25 ]
- >>774
> WindowsはLISP向きでない なことはないから安心しる ただ処理系は少ない.UNIXよりは。
- 778 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:54:37 ]
- >>777
処理系だけの問題じゃないのよ。ちょっと拡張してパッケージを使おうとするときに 辛いのよ。
- 779 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:08:43 ]
- www.lingr.com/room/gKpArxPn9wi 勉強会をかいさいしたはるで
- 780 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:24:07 ]
- >>778
禿同。でも業務仕様はどうにもならんね。世界中が一斉にUNIX移行するか、 WindowsがMacみたいにUNIXへ移行するしかないわけで。
- 781 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:29:25 ]
- >>778
例えば?
- 782 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:45:02 ]
- >>781
具体例はないけど外部ライブラリを呼ぶところかな。ffiがらみのライブラリは特に頭 を痛めると思うよ。対策がされているものは大丈夫だろうけど。グラフィックまわりな んても商用なら先に揃ってるようだから大丈夫だろうがな。
- 783 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:14:22 ]
- >>781
asdf-installでtarにはめられた
- 784 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 04:37:33 ]
- こんなのあるんだね。しらなかった。
examples.franz.com/id/massar.html
- 785 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 04:48:33 ]
- つ www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/impl/starlisp/0.html
- 786 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 06:23:48 ]
- おまいらって頭いいよな。
やっぱ学校の勉強とかもできたん?
- 787 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 09:21:22 ]
- 俺はできなかったよ。頭良い連中はSchemeとかが好きなんじゃねーの、みたいな
- 788 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 11:15:35 ]
- 興味のあることしかしないので異端児扱いされますた‥‥‥。
- 789 名前:786 mailto:sage [2008/06/08(日) 13:14:57 ]
- >>787
そっか。 学校の勉強ができなくても、なんとかLispを習得できるんかな? ・・・頑張れば。 今、Paul Grahamの言葉を信じて苦行中(笑)。 なかなか身に付かん。 >>788 たしかに・・・ もう、凡人には踏み込めない領域かも。 仕事以外でプログラムやってるだけで、変人扱いされるよな?
- 790 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 13:32:17 ]
- 「おまえもうちょっと外に出る趣味を持てよ」と言われた俺がきますた
- 791 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 14:17:37 ]
- >>787
ヲイヲイ、両方使えるだろJK
- 792 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 14:58:00 ]
- >>789
> 仕事以外でプログラムやってるだけで、変人扱いされるよな? 変人扱いされるぐらいに認知度が上がってきたからまだマシ、 以前は「なんかわけわからんことやってる暗い奴等」でひとくく りだったし。
- 793 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 15:46:53 ]
- >>792
>変人扱いされるぐらいに認知度が上がってきたからまだマシ、 なぜか泣ける。 プログラミングが、せめてパズルと同じくらい市民権を得てくれたら・・・ と切に願う。
- 794 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 16:15:17 ]
- さっき秋葉で殺されたじいちゃんもしかしてリスパーでない?
- 795 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 16:31:00 ]
- ttp://www.naklab.k.dendai.ac.jp/prof.htm
名前が同じだけど、どうなんだろうかね・・・。
- 796 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 16:34:42 ]
- そういう話を聴くと何か切なくなるな…
- 797 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 17:05:11 ]
- >>795
yahooで調べたけど、微妙に名前が違ったよ。
- 798 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:10:23 ]
- 先輩方,
おすすめのCommon Lisp入門の方法を教えてください。 入門書にあたるようなものはAmazonでも見当たらないようですし (ANSI Common Lispは評価が悪いので心配です) OnLispはまだ自分には早いようです。 今はインタプリタで関数を作ってみたりしているのですが いまいち実力がつきません 先輩方のようにLispで本格的なアプリケーション開発を始められるようなレベルになるための 過程をご教授願いたいのですが。 よろしくお願いします。
- 799 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:17:53 ]
- ちょっと値段は張るが、
WinstonのLisp(3rd edition)を読む事をおすすめする。
- 800 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 19:26:29 ]
- >>798
ANSI Common Lispは無駄がない良い本だよ。ただ、情報が濃すぎるから 敷居が高くなるところがあるかもしれない。もう一つはloop嫌いがそのまま 反映されているから、実際に作られてるコードをみたときにloopを多く使わ れるのをみると嫌悪感を持ち兼ねない。その点だけわきまえて、3ヶ月で 12章を終わらすペースでやればよいよ。 おっしゃるようにon LispはANSIで難しいという人には手を出す本ではないよ。 Winstonっていいかときかれるとちょっと古いような気がする。winstonの本の 当時はcarよりfirstを多用してた時期らしいです。和書は図書館で取り寄せでも すれば借りられるでしょう。
- 801 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 21:01:58 ]
- 「 初めての人のためのLISP」 ってAmazonでは評判よさそうだがどうなんだろう?
絶版で古本にけっこうな値もついてるようだが..
- 802 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 21:10:40 ]
- 良い本だが、どうしてもって内容ではない。面白いが。
運良く古本屋で見かけたら即ゲットだが、プレミア価格なら買わない。 俺の基準だとそんなところ。
- 803 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 21:24:44 ]
- ANSI Common Lisp どこが悪いの? いいと思うけどなあ。
足りない部分はあるにせよ。そこはPCL読むと丁度よい。
- 804 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 22:47:38 ]
- つか、lispでは実用性がないから
どの本読んでもあまりかわらんだろ? 読みやすければ、それでOK
- 805 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:09:26 ]
- >>804
>>798以上の経験を持っているように見えない人間がアドバイスしているように みえるコメントだな。>>798を混乱させるだけじゃないか?
- 806 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:18:39 ]
- >>799-805
ありがとうございます。 ANSI CommnLispを書店でチェックしてみて自分に合うようでしたら 購入してみます。
- 807 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:29:43 ]
- 黒田さんおすすめのPAIPはどうなの?
- 808 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:33:35 ]
- Peter Norvig の PAIP とSeibel の Practicalが最強でしょ。
ANSIとかwinstonは悪くないけどちょっと古いから2,3冊目にどうぞ。
- 809 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:35:14 ]
- ANSI CommnLispの日本語版が一番安価に入手できる。
- 810 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 00:04:10 ]
- あれ?とおもったからしらべたけど、
PAIPは1992でANSIは1996だったよ。PCLは2005かな。
- 811 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 00:05:25 ]
- >>809
あれ難しいわw つか、Lisp自体が難しいんだろうけど、
- 812 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 00:33:57 ]
- >>810
内容が。。。
- 813 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 00:36:27 ]
- >>811
Lispはコード量が少なくて済む分、一行の重みが濃密だからね。 そのかわり、一度臨界点を越えると生産性が高い。
- 814 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 00:37:12 ]
- >>813
まあ、関数型はみんなそういえるかな。
- 815 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 00:44:20 ]
- >>813
可読性はどうですか? 修行が足りないせいか、めちゃくちゃ読みにくいです(涙)。
- 816 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 01:00:36 ]
- >>815
はじめて最初の1〜2ヶ月はバックグラウンド次第ですごく混乱します。 この辺はJava/C++/C組が挫折するところ。これらのグループよりプログラミングバージン の方が上達が速いかもしれません。 当初のとっつきにくさを乗り越えると、単純な法則のもとでプログラムがかかかれている のがわかるから、それから理解が深くなってくるよ。 もっとも、自然言語学習と同じでボキャブラリを増やす過程は苦しいかな。 わからんでもいいからとりあえずなれることを重視して続けていけば良い。 感覚的な理解ってのは論理的な理解より時間がかかるんで、そのギャップが多いときは どうしても辛くなりがちだから。
- 817 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 01:09:03 ]
- >>816
アドバイス、ありがとうございます。 僕は、まさにその通りのバックグランドを持ってて 再帰に少し慣れてきたかなぁ・・・って段階です。 ちょっと不安が解消されました。 ところで、Lispは可読性が低くないという解釈で良いですか?
- 818 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 01:19:26 ]
- >>817
s式の括弧を読んでインデントをサポートしてくれるエディタとペアならそれほど苦痛じゃないよ。
- 819 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 01:30:23 ]
- >>818
インデントの問題はないので、やはりまだ修行が足りないだけですね。 精進します。 ありがとうございます。
- 820 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 02:45:34 ]
- C++のvirtual, const, explicit, throwsがどうのってのよりは
よほど学びやすいと思うけどな... Boostのソースとかもう意味不明だし
- 821 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 03:37:40 ]
- 読みやすくはねえけど、意味不明ってほどか?
- 822 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 09:42:30 ]
- >>821
まじでか。 boost/iterator/*の怒涛のコメント読むだけで知恵熱出そうだが。
- 823 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 12:37:47 ]
- C++のテンプレやマクロはプログラムに密に作用するから
ブラックボックスとして使いにくいんだよな。 他のテンプレと競合したりする割に、やけにパーツ分割にこだわるし。 思想についていけない。
- 824 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 12:43:14 ]
- boost lambda は確かに動くなぁと確かめたきりで実戦で使った記憶が無い。
- 825 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:51:53 ]
- boostはvisual studio必須だと思った
lisp の自動インデントみたいなもの
- 826 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:32:03 ]
- リストの各要素を足す関数はどのように作れば良いですか
例えばxが'(1 2 3 4)だとすると (lsadd x)の様にして>10とかえってくるような関数を作りたいのです。 よろしくお願いします。
- 827 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:57:57 ]
- applyという機能を見つけて作成することができました
CommonLispに搭載されている関数はどこで確認できるのでしょうか
- 828 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 18:00:43 ]
- Lisp ってあの括弧がなぁ~
インデントで、なんとかならんの?
- 829 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 18:10:57 ]
- >>827
(apropos シンボル)でひっかけてみな あとはHyperSpecをググって
- 830 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 18:38:24 ]
- >>828
式の解析、マクロを生成するマクロでは、インデントのみだと扱いが難しい。 AST(抽象構文木)と同様の構造だから、いろいろ実験できるんじゃないか?
- 831 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 18:39:31 ]
- Lisp のコードを読む分には括弧は無視していい。
ちゃんとインデントつけて綺麗に書けばね。 で、書く時はエディタに助けてもらえばいい。
- 832 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:52:13 ]
- >>828
インデントベースのlispと言う物はschemeの規格に既にあるが。
- 833 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:06:32 ]
- >>831
それは良く聞くんだけど、実際は書きながらエラーがでない程度に 間違ってしまうこともあるし、 読むときも、しっかりと読んでおかないと、対応関係がインデントと 微妙にずれたコードもすくなからず存在する。
- 834 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:08:59 ]
- >>833
> 読むときも、しっかりと読んでおかないと、対応関係がインデントと > 微妙にずれたコードもすくなからず存在する。 読むときもエディタで一度インデントしなおせばいいんじゃ?
- 835 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:58:40 ]
- 与えられた「変なインデントのソース」を、何もいじらずそのまま読む必要は無いよね。
これはLispに限らず、C系でも「整形しなきゃ読めねえよ!」なソースは、多かれ少なかれ 自分でインデントいじって読むと思う。
- 836 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:08:17 ]
- おい、変態インデントはここでは禁句だぞw
- 837 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 23:29:14 ]
- Googleなどで探してみたのですが
解決できないのでよろしくお願いします。 ある数の約数をリストにして出力してくれる関数はどのように 作れば良いのでしょうか?
- 838 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:06:43 ]
- 宿題丸投げの季節か……
- 839 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:12:41 ]
- >>838
すいません 宿題ではなくて作業自動化のために自主作成しているアプリケーションの 一部なのですが・・・・ まだLisp脳になっていないようで考え方がいまいちつかめないのです
- 840 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 01:12:56 ]
- >839
何にしてもLisp以前の問題 数学勉強し直せ
- 841 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:03:39 ]
- >>839
「自分のコードでは遅くて使い物にならない」ならまだしも、 「どのように作ればいいか?」は馬鹿にされても仕方ないんじゃないかな。 お前さん、ある数の約数を得たいとき、どういう風に計算する?
- 842 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:19:53 ]
- >>841
初心者さんが最初に感覚を掴めないってのはざらにあるから、バカにしないほうがいいよ。 >>839 感覚が掴めないのはなれるしかないから。最初は大きなものを作ろうとするより、ちいさな ユーティリティーでいいよ。とかく経験をつんでいけば大丈夫だから。
- 843 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:34:13 ]
- ↑ばーかばーか
- 844 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 03:02:05 ]
- >>839
Cでも何でもいい、まずお前さんが使える言語で書いてみたら? それをLispに移植すればいいんじゃない Lispは手続き型言語みたいに書くこともできるんだし Lispっぽく書くのはその後でもいいと思うよ
- 845 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 03:18:38 ]
- >>842
俺自身は馬鹿にしないけど、>>840とかへのフォローもできない。 約数を求める数学的な知識があって、 Lispの入門書とか、マニュアルとかがあって、 さらにGoogleまで使えるなら、効率が悪かろうが、動かなかろうが、 自分なりの物くらいは作れると思うんだよ。 プログラミング初心者とかなら分かるんだけど、 そんな人間が「Lisp脳になっていない」とか言うか? 関数的な書き方が分からない、とかなら分かるんだけど。
- 846 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 04:39:15 ]
- >>239
PerlとGaucheで書いてみた sub yakusuu { my $x=shift; my @y; for (my $i=2;$i<$x;$i++) { if (($x % $i)==0) {push @y,$i} } return @y; } print yakusuu(100); sub yakusuu2 { my $x=shift; return grep {(($x % $_)==0) ? $_ : 0} (2..$x-1); } print yakusuu2(100);
- 847 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 04:39:42 ]
- こっちはGauche
(define (yakusuu x) (let ((y ())) (do ((i 2 (+ i 1))) ((>= i x)) (if (= (remainder x i) 0) (push! y i))) (reverse y) ) ) (print (yakusuu 100)) (use srfi-1) (define (yakusuu2 x) (filter (lambda (a) (if (= (remainder x a) 0) a #f)) (iota (- x 2) 2)) ) (print (yakusuu2 100)) どっちも似たような感じになってるのが分かると思う あんまり変に考えないで気楽にLispに触れるのがいいよ そのうち馴れるさ yakusuu2はおまけですw Lisp脳ってたぶんこんな感じのを想像したんじゃないかな?
- 848 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 04:41:49 ]
- 239ってなんだよorz
>>846の239は839な
- 849 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 05:07:31 ]
- 「Paul と Graham で書いてみた」に見えた
寝よ…
- 850 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 05:25:16 ]
- あえてコモンリスプ以外で書いたのですね
わかります
- 851 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 05:45:51 ]
- >>847
SRFI-42マジオススメ。
- 852 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 06:34:36 ]
- >>840-851
ありがとうございます。 C言語では #include <stdio.h> int main(void){ int a,b=1; printf("start:"); scanf("%d",&a); while(b<=a){ if(a%b==0){ printf("%d¥n",b); b=b+1; } else{ b=b+1; } } return 0; } となりました。 「Lisp脳」という言葉を使ったのは 偉大なLispHackerの皆さんは意外なそして美しいコードで いつも解決しているので、何か簡潔な方法が有るのではと思い使いました。
|

|