1 名前:デフォルトの名無しさん [2007/04/20(金) 19:41:39 ] Lisp全般のスレです 過去スレ Part16: pc11.2ch.net/test/read.cgi/tech/1172404795/ Part15: pc10.2ch.net/test/read.cgi/tech/1151025773/ Part14: pc8.2ch.net/test/read.cgi/tech/1132275726/ Part13: pc8.2ch.net/test/read.cgi/tech/1115901841/ Part12: pc8.2ch.net/test/read.cgi/tech/1100229366/ Part11: pc5.2ch.net/test/read.cgi/tech/1091456033/ Part10: pc5.2ch.net/test/read.cgi/tech/1075630259/ Part9: pc2.2ch.net/test/read.cgi/tech/1069594582/ http://が多すぎるらしいので分割
756 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 01:46:49 ] >>754 >強い型付けのメリットとして、とても研究な感じになるという利点があるから >卒論は Haskell とか ML 系でなんかごにょごにょするほうがお手軽じゃないかな。 カリー・ハワード対応の事ですか? それで、チューリングマシンの停止問題なんかを証明しても、 そりゃ学問的だけれども新規性がないんじゃ。 誰も証明してない命題が有るなら別なんでしょうけど。 >>755 AllegroStore?AllegroCache? なんぞコレ? clispしか使った事無いのでいまいち何に使うのかさっぱり? 総称関数を保存して共有できるようになる代物? そもそもデータベースを触った事が無いからデーターベースからして よくわかんないです。
757 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 01:47:44 ] 一言で言うなら 卒論書く前にもっと勉強しろよ
758 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 02:20:34 ] まあ4年の7月なんてこんなもんだ。
759 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 02:23:19 ] >753 世の中にはGPGPUというものがあってだな
760 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 03:05:22 ] >>759 自分、面白そうな事思いついたです。 CUDA使って、Lispのインタプリタ作るのってどうでしょうかね? そして、clispとどっちが計算が速いか検討するの。 これだと、今のところ誰もやってないだろうし、 リスト処理ってGPU向きの処理だと思いませんか?
761 名前:デフォルトの名無しさん [2007/07/12(木) 04:03:19 ] わざとっぽいのは相手にしない方が
762 名前:754 mailto:sage [2007/07/12(木) 07:51:20 ] >>756 どっからカリーハワードだの停止性判定だの証明だのがでてきたんだよ。 そーゆうんじゃなくて、なんか小物の研究でも Haskell や ML ならそれっぽく見えるだろって事。 つうかテーマは研究室の先輩や教官とよく相談したほうがいい…。 たとえば超並列分散 Lisp をつくるぜ!!と決めたとして、周囲の支援が得られず完全自力じゃ評価もまともにできんし、学費がもったいない。
763 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 10:50:20 ] じゃあ Lisp の型推論がどこまでできるかとか
764 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 15:26:16 ] >>762 >そーゆうんじゃなくて、なんか小物の研究でも > Haskell や ML ならそれっぽく見えるだろって事。 >つうかテーマは研究室の先輩や教官とよく相談したほうがいい…。 >たとえば超並列分散 Lisp をつくるぜ!!と決めたとして、周囲の支援が >得られず完全自力じゃ評価もまともにできんし、学費がもったいない。 いや、お恥ずかしい話なんですが自分の大学は大学院が無いんで 先輩なんていないんです。 それに指導教官は「何か作れば良いよ〜」という態度なんで 自由な反面、アイデアが必要なんです。 自分の友達は「大学のSNSをxoopsで作る」でOKと言われてました。 自分は「さすがにそれじゃアレかなぁ」と思って。 自分はCUDAでLisp処理系は面白い案だなと思います。 誰でも思いつきそうだけれど、今のところ誰もやってないし、 自分の処理系欲しかったんで。 それじゃ、パソコン買うところから始めなきゃならないんですが(Macなんで) 頑張ってみますね。 C言語は1年くらい触ってないし、マルチスレッドプログラミングは初めてなんで 不安ですが。 出来たらUpするんで、コードレビューしてください。 タライ回し関数が速く動くといいなぁ。
765 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 16:20:23 ] 逐次処理しなきゃだめな部分は早くならないんじゃないのかな。
766 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 16:34:47 ] >>764 くそうらやましす
767 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 20:12:46 ] 一口で大学と言ってもピンキリなんだな
768 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 21:17:35 ] 型推論 1 (変数、戻り型が単一の型に定まる物) (define (ack m n) (cond ((zero? m) (+ n 1)) ((zero? n) (ack (- m 1) 1)) (else (ack (- m 1) (ack m (- n 1)))))) (ack (m ?x) (n ?y)) : (result ?z) から ?x ?y ?zの型を求める (zero? m) => (type_a) : bool 1 => int (+ n 1) => (int int) : int から ?x = int (zero? n) => (type_a) : bool m, nがintなのでzero?の引数は intと仮定して良い (- m 1) => (int int) : int から ?y = int 末尾コンテキストは+ とackのみなので?z = int これでack内の +-zero?演算子はintという前提で最適化でける ・・という感じで良い?
769 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 21:36:38 ] >(tail-map list '(a b c . d)) =>((a) (b) (c) d) (define (tail-map proc x) (let loop ((l x)) (if (pair? l) (cons (proc (car l)) (loop (cdr l))) (proc l)))) ;procをcdrにも適用する (tail-map (proc ?x) (x ?y)) : (result ?z) から ?x ?y ?zの型を求める (l ?v) = ?x (pair? l) (type_a) : bool この中ではl = pairと確定 (car l) => (pair) : type_b (cdr l) => (pair) : type_c (proc 〜) (type_a) : type_d (loop 〜) (type_c) : type_e (cons 〜) (type_b type_c) : pair (proc not-pair) : type_f 以上からprocは1引数でtype_aまたはnot-pairを受け取りtype_d|type_fを返す、 xはpairかnot-pair tail-map の戻り型は pair もしくはprocの戻り型に依存 ・・・もうわかんね
770 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 22:08:54 ] Schemeが(Haskellほどでないけど)関数的であるとされる根拠の1つに 識別子が一度ある場所に束縛されると 他の場所に束縛を変更される事がないっていうのがあるけど それをいうならCだって同じですよね? 一度宣言した変数のアドレスはスコープ内で一定 むろん関数的であるという最大の根拠は関数が第一級の値であるというところにつきるんでしょうけど でもR5RSでは関数のリテラル表記はない、でもそれぞれの実装でサポートしてもよいって扱いですけどね lambdaは関数のリテラル表記だっていう解説もちらほら見ますが
771 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 22:12:32 ] 「識別子が一度ある場所に束縛されると他の場所に束縛を変更される事がない」ことが 「関数的である」とは思わないけど
772 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 22:22:29 ] >>771 いや、参照透過性とは関係ないのに 識別子の束縛が変更されない事に言及する解説をよく見る気がしたので
773 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 22:25:43 ] ヒント: 言論の自由
774 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 23:20:13 ] >>768 なんかところどころよくわかんないような。 自分で目の子でやったらこんな感じになったけど、どうかな。 まず (zero? m) から m : number 次に (+ n 1) から n : number だから ack : number * number -> ?z で else 節の (ack (- m 1) (ack ...)) の第二引数を見ると ?z = number ∴ ?x = ?y = ?z = number
775 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 23:43:17 ] zero?って渡される引数がnumberのみと限定していいのかな。 リストとか入ってきたらエラーでいいんだっけ? まあそういう判定が減るから全体で3倍ぐらい速くなるかな。 それはそれとして、ackみたいな単純なケースは結構作ってるうちに 適当なのができそうだからどうでもいいと思う。 問題は型が定まらない場合。 上、named-let余計だった。 (define (tail-map proc l) (if (pair? l) (cons (proc (car l)) (tail-map proc (cdr l))) (proc l))) まあ普通のmap1でもいいけど。 (define (map1 proc l) (if (pair? l) (cons (proc (car l)) (map1 proc (cdr l))) '())) この場合procが確定するまで保留にすべきなのかな? procは1引数取って何か返す、ぐらいの情報しかないよね。
776 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 23:50:20 ] >>775 > zero?って渡される引数がnumberのみと限定していいのかな。 R5RS みると (zero? z) と書いてあって、 z は複素数を表すメタ変数ということだから そこは問題ないと思う。 で、今気付いたけど = にしてしまうとまずいね。例えば三行目で (zero? n) が (<= n) だったりすると number ではダメで、 real に推論されなきゃいけない。
777 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 23:59:38 ] いや、この際大雑把に「数字かどうか」ぐらいの区別でよくないですか? アドホックにでも最適化に結び付けて、お手軽に型推論による効果 を体感したいというか。 >>775 のmapにしてもフローチェックすればpair?の判定で car/cdrのpair判定が省略できるとか、そんなレベルから徐々に 大掛かりな仕掛けを考えていければいいかなと。
778 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 00:01:00 ] >>777 うん、その方が健全な気がしてきた
779 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 08:55:16 ] え、そのほうが soundnessがいえるんですか? と、あえて誤読をしてみる。
780 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 13:14:34 ] 誤読というより誤爆?
781 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 06:51:44 ] 俺、凄い事思いついた! GHC立ち上げると、 Prelude> ってでるじゃん。 なんでプレリュード?とずっと思ってたんだけれど、 これってもしかして、 Franz Lisztの前奏曲から来てるんじゃないの? リストつながりで。
782 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 12:17:40 ] Franz Lisp
783 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 13:50:04 ] >>781 prelude って一般名詞じゃないの?
784 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 16:01:21 ] 俺も Prelude は一般名詞だと思う。
785 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 16:54:13 ] ネタにマジレスなんとやら
786 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 16:58:10 ] ネタにマジレスを重ねるというネタだったのにマジレスされた…
787 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 17:13:36 ] でもそれが、ネタにマジレスを重ねるというネタにマジレスするというネタかもしれないと考えるのが危機管理というものではないだろうか。
788 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 17:17:54 ] ネタになりかけのレスと、ネタになる余地のないレスの区別ぐらいつきますわよ。
789 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 17:19:30 ] だがしかしそれは主観に左右されるものであるから、絶対的な答えなどないのではないか つまりは君の意見などどうでもよいのですわよ。
790 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 17:21:27 ] ここ、Haskell スレだと思ったら Lischeme スレだったのか!
791 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 17:27:55 ] むしろ寝たすれ家と思う田
792 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 21:07:40 ] 自分がアホっぽく見える流れになっちゃったら、 「何か狙ってた」ことにして「お前らのせいでそれがダメになった」と嘆いとくのは基本。
793 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 21:10:43 ] 誤爆?
794 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 23:41:45 ] アホの子はかあいいよ?
795 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 16:31:39 ] gaucheのCVS Headって、ここ最近コンパイルできたためしが無いんだけど、 これってパッチとか作る価値があるの? それとも、shiroさんの手元ではできてるの?
796 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 18:36:58 ] wilikiかlingrあたりで聞いてみたら? HEAD使ってる人は何人もいると思うけど。
797 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:15:04 ] 普通にできてる。ドキュメントよまずにやってない?DISTほげ
798 名前:795 mailto:sage [2007/07/21(土) 00:53:52 ] HACKING とかは読んでる。 Cのコンパイルじゃなくて、schemeコードを実行するところで ライブラリが見つからないとかいろいろ出る。 システム既存のgaucheと衝突してるのかなあ…? lingrで、makeにいろいろオプション渡すとできるよって言ってた人が いて、それで前進したけどまだ止まる もう少しあがいてみるかな
799 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 01:16:10 ] そうか。 俺は ./DIST gen を忘れてて、コンパイルできねーな?と思ってた事があったんでひょっとしてと思ったんだけどね。 で、どんなエラーメッセージなの?
800 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 21:01:50 ] >>795 俺もそれではまった。 最近はGauhceのコンパイルにGaucheを要求するので、 古いGaucheを使ってるとgoshがエラー出す。 Gauche 0.8.10(release)使えばコンパイルに成功する。 Gauche 0.8.10(release)すらコンパイル出来ないときは、 バージョンを一個ずつ上げてみて。
801 名前:795 mailto:sage [2007/07/22(日) 17:34:53 ] >>800 サンクス 調べてやってみます
802 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 01:00:07 ] schemeってcommon lispのsymbol-valueに相当するもの無いけどevalを使うしかないんですか? やりたいことはalistに文字と関数のペア入れておいてその関数を呼び出したいんだけど。 '(#\a . func_a) だとfunc_aは関数にならないから `(#\a . ,func_a) と書いてるんだけどいちいち','を書くのがめんどい。 こういうところはマクロを使うのがセオリーなの?
803 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 07:13:30 ] Schemeでは「symbolに値が入ってる」わけじゃないからね 処理系によっては実行時にはシンボルと値の結び付きは完全に忘れちゃってる 可能性もあるし。 処理系依存で良ければ、symbol-valueとかglobal-variable-refとかが使える 場合もある。ポータブルにやるならevalしかないだろうね。 「文字と関数のalist」とかは普通にバッククオート使っちゃうけどなあ。
804 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 08:50:18 ] 個人的には evalも邪道だと思う。 そもそも R4RS には evalも必須じゃなかったし。 万独裁なら cons でも使え。
805 名前:802 mailto:sage [2007/07/23(月) 11:14:54 ] >>803 なるほどね。R5RSをよく読んだらそう書いてあったよ。 Common Lisp陣営がSchemeを批判するときの論点がそこなのね。 >>804 確かにevalは使いたくない。 今まで通りquasi quote使って関数をunquoteすることにしました。
806 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 20:16:11 ] >>805 > >>803 > なるほどね。R5RSをよく読んだらそう書いてあったよ。 > Common Lisp陣営がSchemeを批判するときの論点がそこなのね。 全然違うと思うが。 Schemeにも1st class objectとしてのシンボルがあればなあという CLerもいるっちゃいるだろうけどさ。
807 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:38:53 ] ブラックボード黒田
808 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:49:38 ] kuroタソ(*´д`*)/ヽァ/ヽァ
809 名前:デフォルトの名無しさん [2007/07/25(水) 09:38:10 ] www.tekkon.net/ これってlisperの話?w
810 名前:デフォルトの名無しさん [2007/07/27(金) 01:42:56 ] 質問があります。 lispで、他の言語も実装した(というか、DSLを作ってみたというか) 処理系があったと思うのですが、ご存じないでしょうか? lispでよく用途に合わせた言語を再実装したとう話を聞くのですが、 なかなか実例に合わず、う〜ん?と思っていたのですが、 これを見て、lispすげーと、唸った覚えがあります。 けっこう、最近の言語だったと思うのですが、ご存じないでしょうか? 確か、DSLとしては、ひとつとして、JavaScriptのサブセットを実装していました。 他の言語のサブセットもあったと思うのですが、覚えていません。 もしかしたら、Lispじゃなくて、もしかしたら、schemeの実装だったかもかわかりません。
811 名前:デフォルトの名無しさん [2007/07/27(金) 01:58:31 ] もしかしたら、lispじゃなかったかもしれません orz うろ覚えなのですが、中間形式として、S式を使っていたような? 言語内に、いくつかのプログラムがあってそれを組み合わせて、使っていたような気がします。
812 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 02:05:25 ] >>811 『On Lisp』の24章に、Common Lisp による埋め込み言語としての Prolog 実装の話はあるけど。 ただ Prolog は最近の言語ってわけでもないし……。
813 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 03:48:27 ] >>811 まさか、TAOじゃないよな。
814 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 04:30:18 ] Coke & Pepsi?
815 名前:デフォルトの名無しさん [2007/07/27(金) 14:31:02 ] >>814 それそれ!!それです。 ありがとさんです。 CokeとPepsiとJoltです。 ただ、今見たら、素人の手に負えそうなものではないことがわかったw
816 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 17:25:35 ] オナニーしすぎてモーホー炎になりますたw
817 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 00:07:51 ] >>810 HaskellでPerlを実装した話じゃなくて?
818 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 00:31:50 ] haskellはschemeで作られました
819 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 02:31:09 ] schemeはschemeで作られました
820 名前:名無しさん@そうだ選挙に行こう [2007/07/29(日) 13:11:31 ] ・[1492] L2Lisp in Ruby((鈴)) 静的スコープ、末尾呼出し(末尾再帰を含む)の最適化、およびマクロを備えた 近代的なLispの小さなインタープリタをRuby(およびJRuby)で作ります。Rubyの データ型と親和性が高く、簡単に組込み関数を増設できる手頃なLisp処理系として 利用できます。 codezine.jp/r.x/czn077a/aid/1492
821 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 13:38:23 ] rubyなら継続も比較的簡単に実装できると思うんだけど なんでまた半端な物作るかな CL厨がまた文句言いにくるよ
822 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 14:01:32 ] 「簡単に組込み関数を増設できる手頃なLisp処理系」に継続も装備させようという発想が凄いな。
823 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 15:56:16 ] 手頃な処理系というのならForthの方が良いと思うけどな。 元にしたL2Lispのページを見ると、継続(というかcall/cc)は不完全らしいね。
824 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 16:07:56 ] Forth でも良いだろうし Lisp でも良いだろう 大して変わらんよ
825 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 20:15:49 ] >>821 漏れ CLer だけど……どの辺に文句つける要素があるんだ?
826 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 20:28:16 ] 気にする事は無いよ
827 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 20:34:11 ] むしろ継続継続とSchemerが喰いついている件。まぁ、あんまり使われないだろうけど。Rubyistがわざわざこれを使うとは思えない。
828 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 20:58:35 ] いわんや Lisper おや
829 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 21:20:01 ] つーかLisperも使わんでしょこんなの
830 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 23:05:29 0] そういう問題ではない
831 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 23:12:06 0] なんだ、L2LispってPascalの処理系を移植しただけか。 ruby厨うぜえ。
832 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 00:09:14 ] >>825 ブラックボード黒田さんなら、黒板振り回しながら襲いかかるであろう仕様。
833 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 00:27:42 ] >>832 一般の Lispnik とは全く関係無いな
834 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 00:59:26 ] >>820 とてもコンパクトに出来ていて Ruby と Lisp の勉強になりました、 とレスしてほしいんだろw
835 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 04:54:46 ] 継続ってのは後続のことですか?
836 名前:デフォルトの名無しさん [2007/07/30(月) 15:43:41 ] >>834 そうそう。わかればいいのです(^^)
837 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 17:24:55 ] 荒らすなよRuby厨
838 名前:デフォルトの名無しさん [2007/07/30(月) 17:45:09 ] Schemeの質問をお願いします。 下記@とAを実行した場合、 それぞれの結果になるプログラムを教えて下さい。 @(my_makelist 5) を実行した結果 (1 2 3 4 5) A(my_max ’(34 20 30 19)) を実行した結果 34
839 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 19:22:03 ] (define (my_max list) 34) (define (my_makelist n) '(1 2 3 4 5)) こんなかんじ
840 名前:838 mailto:sage [2007/07/30(月) 19:40:06 ] >>839 さん 実行しましたが、以下の結果が返ってきません。 @(my_makelist 5) -> (1 2 3 4 5) A(my_max ’(34 20 30 19)) -> 34 もう一度お願いします。
841 名前:839 mailto:sage [2007/07/30(月) 19:46:15 ] うちでは動いています。 あなたの処理系のバグではないですか?
842 名前:838 mailto:sage [2007/07/30(月) 20:00:01 ] 839>>さん 昨年、以下のサイトで、 www5a.biglobe.ne.jp/~sasagawa/MLEdit/Scheme/index.html これを『ChezEdit-NT Ver1.11 setup.exe』インストールしましたが、 何か問題があるのでしょうか? 他のプログラムは問題なく結果が返ってきます。 度々すいません。
843 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 20:10:51 ] あなたの頭に問題があんじゃないでしょうか?
844 名前:838 mailto:sage [2007/07/30(月) 20:13:43 ] >>839 さん @は以下の通りで何とかできました。 (define make_list(lambda (n) (do ( (res (list n) (cons n res)) ) ((= n 1) res) (set! n (- n 1))))) Aの方は、以下のmax部分がうまく作れません。 (max 34 20 30 19) -> 34 お願いします。
845 名前:839 mailto:sageクズ学生は邪魔だ さっさと退学して社会の底辺で働けよ [2007/07/30(月) 20:19:04 ] それと同じ方法で書けば良いと思います
846 名前:838 mailto:sage [2007/07/30(月) 20:23:56 ] >>839 さん そこを何とか教えてもらえませんか?
847 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 20:25:38 ] Prologだと以下のようになります。Prologでまったりには 意地悪な人いないから、遊びにいらっしゃい。 my_max([A|R],Max) :- my_max(A,R,Max). my_max(Max,[],Max). my_max(A,[B|R],Max) :- B>A,my_max(B,R,Max),!. my_max(A,[_|R],Max) :- my_max(A,R,Max).
848 名前:838 mailto:sage [2007/07/30(月) 20:29:15 ] >>847 さん 遊びに行きたいのはやまやまですが・・・。 Prologではダメなんです・・・。 初心者で申し訳ありませんが、 誰か優しい人お願いします。
849 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 20:36:21 ] 無能にキレる人というのは、無能によく出会うレベルの学校や職場にいる人が多い。 滅多に無能に出会わないようなハイレベルな環境で生きてる人は、もっと「余裕綽々にイジる」。 でも、無能によく出会うレベルの環境に居るってことは、自分のレベルも知れた物なんだよね、実は。 そのくせ上から目線というのはどういうことかというと、つまり自分では優秀なつもりなのに 現実がそれをまったく反映してくれない、そのギャップへの苛立ちを、こういう場所での小爆発で 少しでも解消しようという行為なわけ。 黒板におでこくっつけて頭冷やしたほうがいいよw
850 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 20:39:58 ] >>838 俺だったらschemeの上のprolog乗っけて>>847 のコード動かすけどな。 On Lisp prologでぐぐって
851 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 20:43:10 ] >>849 黒板に縛りつけられてチョークを出し入れまで読んだ
852 名前:838 mailto:sage [2007/07/30(月) 20:57:30 ] あの、私女子大生なんですが・・・。 優しい方にはなんでもお礼しますから回答お願いします。
853 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 21:02:57 ] VIPでマンマンうpしたら考える
854 名前:838 mailto:sage [2007/07/30(月) 21:04:40 ] (i) こうですか?わかりません(><)
855 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 21:29:23 ] >>849 えらく無能そうな人が出てきたなぁ
856 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 21:33:09 ] >>838 通りすがりのものですが、行きがかり上こちらも書いておく。 my_makelist(N,L) :- findall(M,for(1,M,N),L). 実用上はこれで良いのだが、ただライブラリを利用したようなものだから、 my_makelist(N,L) :- my_makelist(1,N,L). my_makelist(N,N,[N]) :- !. my_makelist(N,E,[N|R]) :- plus(N,1,M),my_makelist(M,E,R). とすれば、自分で書いた気がする。 なんでこのスレがこんなに伸びるのか(Part 17)、視察に来た だけです。PrologでまったりはまだPart 2なので。失礼しました。