1 名前:デフォルトの名無しさん [2009/04/18(土) 01:30:29 ] __,, , , , _ 、 ,,, ... ,, _ ..,_ ー=、 、ー-、`ヽ、、ヽ`!i' , ,i",r'",-'"=ミ `ヽ`ヾ`、 ! ヽ ! l! i! !_i_/_<'"`` `,ゝ、iliー'" "、,"、', i, リ !/!,li ,;;-=o=-,ッィ=。ゥィ くにへ かえるんだな __ i、`!', '; `ー /;;!i、''; ,! おまえにもかぞくGuileんだろう・・・ ー''`ヽ`,ーi'`''"!、ヽ , `一'、 / __ `il `i ! ヽ、  ̄ ̄ / iヽ、/ ,.ヽ_ i! !` `ーァ、-ー' ! ノ!トi,!'",ノ-、 ,..=、i! iヽ-、 rィ',;'!ヽー-、! `/_,i' _,.!'、 ーニー-、._ `ヽゞニ-、.;' i! ! , `ト_ノ`x-'" ノ =ニヽ、 , `, /ヾ=ソ ノ !/ !、`ー`''イ、 -ー-、 `i, / / ヽ `イ_, i -'" ̄`! ! ヽ ゝノ /-'" ` ' ! ヽ ! Guile (About Guile) www.gnu.org/software/guile/guile.html Guile によるスクリプティング www.ibm.com/developerworks/jp/linux/library/l-guile/index.html
2 名前:デフォルトの名無しさん [2009/04/18(土) 02:39:30 ] 2get
3 名前:デフォルトの名無しさん [2009/04/18(土) 05:17:16 ] 3get schemeを初めて触る人にアドバイスをください 英文でも学習しようという意欲のある人だと、emacsのinfoが便利っぽいですね
4 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 07:28:17 ] >>3 Lispを学んでから使え
5 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 07:54:00 ] SchemeはLispじゃなかったのか
6 名前:デフォルトの名無しさん [2009/04/18(土) 08:46:10 ] >>5 シンボルが無い ()と#fを使いわけなくちゃいけない 名前空間が無い マクロが無い ハッシュテーブルが無い 仕様に未定義 undefined だらけ 仕様にREPL(read-eval-print-loop)が無い ワルいけどSchemeはLispとしてあまりにも不完全すぎる
7 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 08:57:15 ] >>6 > シンボルが無い うそつくな > マクロが無い うそつくな > ハッシュテーブルが無い R6RSかSRFI69にありますが CL厨ってこんな奴ばっか?
8 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 09:15:56 ] >>6 を満たした言語ってなんだろ? C言語(特有のマクロ)っていつ頃ついたのかな? >()と#fを使いわけなくちゃいけない がLisp/Schemeっぽいんだよな
9 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 09:25:23 ] >>7 CLやっている人は、さすがにSchemeもちゃんと触っているでしょ
10 名前:デフォルトの名無しさん [2009/04/18(土) 09:31:34 ] Common LispをLispと呼ぶのは初心者だってじっちゃがいってた。
11 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 09:32:06 ] Schemeの"シンボル"はCLのシンボルとは違うだろ
12 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 09:36:40 ] > SchemeはCommon Lispとしてあまりにも不完全すぎる それはあまりにもごもっともでございます。
13 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 09:55:23 ] C言語はCommon Lispとしてあまりにも不完全すぎる JavaはCommon Lispとしてあまりにも不完全すぎる PerlはCommon Lispとしてあまりにも不完全すぎる cobolはCommon Lispとしてあまりにも不完全すぎる Schemeで表せ
14 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
15 名前:デフォルトの名無しさん [2009/04/18(土) 10:01:29 ] >Schemeで表せ #f
16 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 10:07:33 ] Common LispはSchemeとしてあまりにも不完全すぎる C言語はSchemeとしてあまりにも不完全すぎる JavaはSchemeとしてあまりにも不完全すぎる PerlはSchemeとしてあまりにも不完全すぎる cobolはShcemeとしてあまりにも不完全すぎる HaskelllはShcemeとしてあまりにも不完全すぎる
17 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 10:21:15 ] 難易度からいえば C<Java=Ruby<Common Lisp<Python<Scheme だろ。 読み方の話だけど。
18 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 10:30:59 ] >>17 Gaucheは、Schemeの下だな 人と話すときにスッと出てこないのには、自信がある
19 名前:デフォルトの名無しさん [2009/04/18(土) 10:48:16 ] まつもとゆきひろ<<DennisRitchie<<<<<<<<<<<<(日本語の限界)<<<<<Bjarne Stroustrup
20 名前:デフォルトの名無しさん [2009/04/18(土) 10:55:08 ] Guileのメリットって何?FSFのお墨付き?GNU標準だから?
21 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 12:17:28 ] >>20 GNUの標準拡張言語としてHURDと同じくらい未来が保証されている。 この未来が明るいのか暗いのかは人によって違う。
22 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 15:20:07 ] 待ちguile
23 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 16:33:33 ] >>1 いわゆる「出落ち」
24 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 16:36:06 ] >>19 dmr は日本語喋れるのか 知らんかった
25 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 18:35:53 ] 読みやすさの問題だろ。
26 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 19:02:55 ] >>24 白本(緑本)を読んでないな。ちゃんと "o tegami wo doumo arigatou gozaimasu." って喋ってる。
27 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 20:53:06 ] >>26 それリッチーじゃなくてカーニハン
28 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 17:51:35 ] 無頼庵蟹半とか美流上位とか
29 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 18:12:22 ] 美流上位は本人がそう書いたんだっけ。 さてクイズ。高徳納って誰でしょう?
30 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 21:09:47 ] 1.ドナルド・ダック 2.ドナルド・クヌース 3.ドナルド・マクドナルド
31 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 01:46:22 ] >>1 935 名前:デフォルトの名無しさん[sage] 投稿日:2009/04/18(土) 05:12:39 >>933 guileを中心に勉強している身としては、うれしいがw 本当に大胆だな Guileスレを立てた1は、週1で簡単なスクリプトでいいから、投稿してくれ
32 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 16:44:44 ] まずソニックブームのスクリプトを書いてもらおうか
33 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 20:05:25 ] # It's cool!!! (define (sonic-boom) (define (bar y) (define (foo x) (if (= x 0) (format #t ")\n") (begin (format #t " ")(foo (- x 1))))) (if (= y 20) (foo y) (begin (foo y) (bar (+ y 1))))) (begin (format #t "Sonic Boom!!!\n") (bar 0))) (sonic-boom)
34 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 13:09:46 ] 209 名前:デフォルトの名無しさん[sage] 投稿日:2009/05/05(火) 05:23:24 >>208 いいんじゃない? それでは、パイロット版という感じで気楽にやりましょうか。 【イベント名】 13時だョ!全員集合 【開始時間・終了予定時間】 今日の13時〜14時 【モットー】競うというより楽しく 【参加条件】一般的な社会常識がある人で関数型言語が使える人、または勉強している人。 【部門】今回は2部門。初心者部門と一般部門。初心者は3題出題。 一般部門は初心者部門の問題3題に加えて、7題を加えた計10題。 【イベントに使うスレ】 ttp://pc12.2ch.net/test/read.cgi/tech/1239985829/ 【あとサイト】 和訳 odz.sakura.ne.jp/projecteuler/ 【解答用紙】 codepad.org/ 【備考】初心者の参加、大歓迎です。あとおもしろい企画があったら、どしどしレスしてください。 Lisp Scheme Part26 pc12.2ch.net/test/read.cgi/tech/1240567959/
35 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 13:11:21 ] やるよ 問題は11, 12, 13にしてみる 数学的によくわからなくて、解けないというオチにならなければいいが
36 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 13:12:39 ] Project Euler(odz.sakura.ne.jp/projecteuler/ )のProblem 1を解いてみた。 末尾再帰にはしたけど高速化はしていない。 (define p001 (lambda (n) (letrec ((p001-aux (lambda (n sum) (cond ((= n 0) sum) ((or (= (modulo n 3) 0) (= (modulo n 5) 0)) (p001-aux (- n 1) (+ sum n))) (else (p001-aux (- n 1) sum)))))) (p001-aux n 0))))
37 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 13:23:38 ] 1番をみて、一般部門を10問にしたけど、11, 12, 13は難しいぞ 自分のプログラム技術で解けるかな
38 名前:36(1/2) mailto:sage [2009/05/05(火) 13:43:53 ] すまん、13:00から勝手に始めてた。Problem 11ね。 (define prod (lambda (table) (let ((xmax (vector-length (vector-ref table 0))) (ymax (vector-length table))) (let ((lookup (lambda (x y) (if (and (<= 0 x) (< x xmax) (<= 0 y) (< y ymax)) (vector-ref (vector-ref table y) x) 0)))) (lambda (+x +y) (lambda (x y) (* (lookup (+ y (* +y 0)) (+ x (* +x 0))) (lookup (+ y (* +y 1)) (+ x (* +x 1))) (lookup (+ y (* +y 2)) (+ x (* +x 2))) (lookup (+ y (* +y 3)) (+ x (* +x 3)))))))))) (define p011 (lambda (flist xlist ylist) (apply max (map (lambda (f) (apply max (map (lambda (y) (apply max (map (lambda (x) (f x y)) xlist))) ylist))) flist))))
39 名前:36(2/2) mailto:sage [2009/05/05(火) 13:49:15 ] Problem 11の呼び出しの方。やっぱり高速化はしていない。 (define data #(#(08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08) #(49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00) #(81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65) #(52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91) #(22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80) #(24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50) #(32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70) #(67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21) #(24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72) #(21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95) #(78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92) #(16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57) #(86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58) #(19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40) #(04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66) #(88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69) #(04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36) #(20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16) #(20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54) #(01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48))) (display (p011 (list (let ((prod-table (prod data))) (prod-table 1 0) (prod-table 0 1) (prod-table 1 1) (prod-table 1 -1))) '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19) '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19)))
40 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 14:10:19 ] 具現化できない infoを読んでいる時間が長いんだが というか、あと5分ぐらいで俺は制限時間の1時間だ 思ったより数学・数学していなくて、おもしろいね 11を解いたか、すごいなあ 13をやっているんだけど 答えに近づく解法をしているとは、思いながらやっている
41 名前:36 mailto:sage [2009/05/05(火) 14:35:32 ] 実はProblem 12も解いたんだけど速度がダメすぎた。 N=500だと1時間以上かかりそう。
42 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 14:53:14 ] おれは無解答で・・・ こういう問題が来るとは思わなかったな ひさしぶりにSchemeを触ったけど、楽しいね 宿題って感じで毎日1問ぐらいがいいなあ ググったら、あと解答らしきアドレスをみつけたんですけど、どうしましょうか? 答えの数字のみのやつ あとコードパットに解答を貼って、リンクしたほうがいいんじゃないかと思う みんなが平気ならかまわないけど >>38 tableって39さんと同じ形式?
43 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 01:17:51 ] 気付いたらもう終わっているという… せっかくなので以前書いたProblem 12を高速化してみようかと書き直し始めたら軽く1時間越えた。 途中経過 ttp://paste.lisp.org/display/79705 SBCLでN=1000が6秒くらい。本体の方の工夫が全く書けてないのでもう少し速くなると思う。
44 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 09:21:51 ] >>43 三角数の値を求めるだけの問題だから、問題ないけど 項の値が+1されているね うちの環境だと15秒だったw
45 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 13:17:26 ] メモ化した意味がなかったので微修正。(26行目あたり) ttp://paste.lisp.org/display/79738 5倍速くらいになった。あと>>44 も修正。 本体の方は変えてもあまり意味ないような気がしてきたからもういいや。
46 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 22:15:29 ] >>45 うちのマシンで一秒切るね
47 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 22:16:50 ] >>45 本体の最後こうすると速くなったよ (do ((i 2 (1+ i))) ((<= n (if (oddp i) (* (factors-count i) (factors-count (/ (1+ i) 2))) (* (factors-count (/ i 2)) (factors-count (1+ i))))) (values (* i (1+ i) 1/2) i)))
48 名前:45 mailto:sage [2009/05/06(水) 23:01:46 ] あーそのループは考えてたんだけど単純にかけ算で良かったんだ。 N=1000で0.1秒切るなぁ。すばらしい。
49 名前:デフォルトの名無しさん [2009/05/07(木) 01:40:44 ] 13番の50桁問題、難しくないじゃん guileで50桁前後の扱えないのかと思っていたら、普通に扱えた
50 名前:デフォルトの名無しさん [2009/05/08(金) 13:11:15 ] がいらーとごーしゃー のけんか は あるの?
51 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 21:34:43 ] tsushima.2ch.net/test/read.cgi/newsplus/1241732267/2 これ面白いなw こんな文章を作るスクリプトなんかどうだろ
52 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 21:44:51 ] >>51 ふつうによめちゃうなあ 文節をわけて、最初と最後を強調して、錯覚させているのもあるし、ひらがなもそうだよね
53 名前:デフォルトの名無しさん [2009/05/09(土) 00:59:05 ] >>51 もう誰か作ってたよ、はてなの誰かのブログでみた。
54 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 01:27:35 ] commonlispで書いてみたよ。 clispとSBCLで確認済み。 ttp://codepad.org/Et9qPCmE >>53 それどこ?IDだけでもplz
55 名前:デフォルトの名無しさん [2009/05/09(土) 09:36:16 ] プロジェクトオイラーの問題11をCで解いてしまいますた。 問題12はclispで20秒で解けた 答えは12375番目の76576500という三角数です。 プログラムは ↓ (defun dv-sub (n) (do ((x 1 (1+ x)) (y n) (a nil)) ((>= x y) a) (if (= (mod n x) 0) (progn (setf a (cons x (cons (/ n x) a))) (setf y (/ n x)))))) (time (do* ((x 2 (1+ x)) (y 3 (+ y x)) (a (dv-sub y) (dv-sub y))) ((> (length a) 500) (format t "~A ~A~%" x y))) )
56 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 04:23:46 ] スクリプト言語らしい使い方はしないのか。 保守
57 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 05:27:54 ] >>56 どういう意味?
58 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 00:30:14 ] 文字どおりじゃ
59 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 21:33:39 ] 1.9.0リリースsage 時間ができたらいじってみよう
60 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 21:36:54 ] 1.9.1リリースsage
61 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 11:47:36 ] guileってまだメンテされてたのかw gaucheスレかと思った
62 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 22:29:10 ] 1.9.2リリースsage
63 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 23:27:08 ] 1.9.3リリースsage
64 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 21:07:11 ] 1.9.4リリースsage
65 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 22:55:36 ] 1.9.5リリースsage
66 名前:デフォルトの名無しさん [2009/10/17(土) 00:19:13 ] まだGNU Guile 1.9.5はありません。 現時点の最新版は1.8.7と1.9.4 (alpha)です。 git@sv / guile.git / summary git.savannah.gnu.org/gitweb/?p=guile.git Index of /pub/gnu/guile ftp.gnu.org/pub/gnu/guile/