1 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:41:07 ] 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))
523 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 02:24:15 ] >>520 www.scsh.net/
524 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 05:29:54 ] 俺なんかGoogleがLispマシン作ってただみたいな値段で売り出す夢見た。\(^O^)/
525 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 05:42:02 ] アフリカ起源のLispは猿が二股の木を組み合わせてやってたもので、 エバル猿が仕切ってる、ってなんかで読んだのですが GoogleがLispマシンで世界制覇したのち猿の惑星になるのかもしれないな\(^o^)/ 何言ってんだ俺w寝よ…
526 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 09:48:38 ] てか、おまいらそろいも揃って中村正三郎かよ!って顔文字使ってやがるな(w
527 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 10:59:52 ] \(λ ^o^)/
528 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 12:51:50 ] /(^λ^)\
529 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 13:52:10 ] Goolips作ろうぜ
530 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 16:01:44 ] Googlispとは… ↓
531 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 16:03:33 ] (google '(googlisp))
532 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 20:27:51 ] しかし実装はPythonだ(藁)
533 名前:デフォルトの名無しさん mailto:sagd [2007/09/08(土) 13:18:18 ] (OTZ =3 >>532 )
534 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 16:25:12 ] (cons "人生" "オワタ") => \(^o^)/
535 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 15:12:01 ] Lisperの諸君もどってきてくださk><
536 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 15:14:34 ] ちょっくら Haskell してくるε≡≡ヘ( ´∀`)ノ
537 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 21:05:05 ] >>535 near the you.
538 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 00:32:41 ] WindowsでScheme用のエディタにEmacs使いたいんだけどよくわからむ。 Gaucheの解説サイトの.emacsそのまま作ったんだけど、LispboxについてたEmacsじゃ駄目なのかな。
539 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 02:54:42 ] どこがどうわからんのか説明できる程度までは自分で調べてくれんか
540 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 04:18:48 ] scheme の話題はこっちで。 pc11.2ch.net/test/read.cgi/tech/1186922295/
541 名前:538 mailto:sage [2007/09/18(火) 12:50:38 ] スレ違いごめん。
542 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 22:49:22 ] >>538 いやいやお若いの。このスレに立ちよったのも何かの縁。 Common Lisp も学んでいっちゃぁどうだね?
543 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 23:36:14 ] come on lisp
544 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 23:49:07 ] 寒いオヤジギャクを思いついても、書き込まないほうがいいと思うんだな
545 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 00:29:32 ] オヤジしかいないんだから、別にいいと思うが
546 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 00:38:11 ] >538みてーに偶に迷い込む若ぇ奴が近寄らなくなるぢゃねーか!
547 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 00:46:07 ] >>543 その発想は無かったw ちょっと笑ってしまった俺もオヤジの仲間入りか…
548 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 00:58:39 ] >>543 【審議中】 |∧∧| (( ) ) (( ) ) ((⌒ ) __(;゚Д゚)___ (( ) ) (( ⌒ ) (( ) ) |⊂l l⊃ | ノ火.,、 ノ人., 、 ノ人.,、  ̄ ̄|.|. .|| ̄ ̄ γノ)::) γノ)::) γノ)::) |.|=.=.|| ゝ人ノ ゝ火ノ ゝ人ノ |∪∪| || ∧,,∧ || ∧,,∧ || ボォオ | | ∧ (´・ω・) (・ω・`) ∧∧ | | ( ´・ω) U) ( つと ノ(ω・` ) ~~~~~~~~ | U ( ´・) (・` ). .と ノ u-u ( ) ( ノ u-u `u-u'. `u-u'
549 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 01:04:34 ] まあありだろ
550 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 01:26:54 ] 何でもありが Common Lisp の美点だべさ
551 名前:538 mailto:sage [2007/09/19(水) 02:42:51 ] そんな若くないけど、優しいお言葉ありがとうですお SICPとアセンブラの本を読み終わったらLISPやるつもりですお バスコン初心者なので両方いっぺんは無理ですお 今後の予定 絶版の湯浅さんの本を押さえてあるのでそれやったら グレアムの本2冊買うつもりですお ここまで行けるかはかなり謎ですがおw 今は他の勉強する気ないんですがネットワーク管理任されそうですお 素人なんでそっちも勉強しなくてはならんのですお( ;^ω^)
552 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 03:52:45 ] >>543 ナイスボケ
553 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 07:08:07 ] lispっておっさんの言語なの?
554 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 08:00:05 ] 543 をはじめとするおっさんどもが要るだけだろう 俺はヒキコモリ高校生
555 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 08:14:02 ] 必要なのか
556 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 11:12:47 ] 以前から不思議だったんだけど2chのスレってどんな過疎スレでも「ハゲ」と「おっさん」話が持ち上がると妙にスレが伸びるんだろう?
557 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 12:37:58 ] それはry
558 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 15:21:46 ] >>556 2chに出入りしている腐女子は「ハゲ」×「おっさん」と 「おっさん」×「ハゲ」のどっちが良いかでご飯3杯いけるから。 因みに数字板ではこれがマジだから困る。
559 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 23:43:01 ] イケメン禿のおっさんがLISPとは何かを語ると 腐女子がえびぞりながら泡吹いて失神するぞ。 クワトロのせりふで決めればもう涎流しっぱなしで再
560 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 01:05:39 ] >>556 そういう言葉で煽るのは、自分はそれらのキーワードと無縁だと思ってる層で、 そういう層は大抵若い世代、言い換えれば、経験とか知識に乏しいまま全能感だけ持て余してる世代。 つまり、そういう話が持ち上がると伸びるのではなく、アホなことでスレ伸ばす層が持ち出しがちな単語が そういうものなんでは。
561 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 04:33:26 ] どなたかお助けください。 sbcl,clispでキーボード操作を受け付けるプログラム書いてあそんでいるのですが双方で共通にttyの設定をraw,noecho似する方法はありませんでしょうか? 現在clispでは(shell "stty raw -echo")を,sbclだと実行前に同様のコマンドを実行しています。 ただこれだとclispはreadlineがカーソルキーを食ったままですし、sbclは抜けないと元に戻せなくて困っています。
562 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 07:50:19 ] CLISP なら SCREEN パッケージも入ってると思うけど。 あとは EXT:WITH-KEYBOARD とかでCUI できる。 SBCL と共通にしたいなら ncurses を使うのがいいんじゃないかな。
563 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 11:54:18 ] >>562 ありがとうございます、ncursesで検索したらcl-cursesとかcl-curl(cURLじゃないんですね)とかいろいろ出てきました。
564 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 11:04:13 ] 最近cgiをLispで書くのがマイブームです><
565 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 11:18:53 ] それたのしそうですね>< どうやるんですか><
566 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 23:01:52 ] ViaWebでさえサーバープロセスが動いていたのに 何でCGIで書くのかと問い(ry
567 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 23:02:53 ] 普通にかけますよ clispなら小さいからプロセス起動なcgiでもいけますし、sbclならfastcgi使うとごっつはぇぇでし。
568 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 23:07:01 ] >>566 cgiつーのは割と身近で小さめの実用プログラムな側面があるのでそういう否定のしかたはよろしくないような気がする。
569 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 00:46:01 ] 結局のところお前らCLispで実際に使えるプログラムかいてないのか?
570 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 01:07:35 ] エディタのスクリプトならバリバリ……
571 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 07:52:21 ] プロトタイプ作成とかデータ整理とか表には出せないが使ってるよ。 でも上にはプロトタイプ専用の「ゲテモノ」と認識されてるんでね、テストまでしか使えない。 人月単位の人海戦術で作るとな……プロトタイプのほうが高速かつ高機能とかマジ泣ける… 仕様通りちゃんと動いたとしても、結局素人を集めて人海戦術で作らないと安心できない、それぎゃ現実の仕事。 でもテスト用のプロトタイプがあるだけでもマシなほうさ。バリバリのウォーターフォールでデスマーチ化ってとこ多いしね。 …なんか愚痴っぽくなったな、スマン。
572 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 08:03:45 ] おれ、グーグルに入れたら「ウォーターフォール」卒業して 先端技術でバリバリ働くんだ。
573 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 10:20:25 ] >>571 速くHackerがたくさんいる企業に就職しなおすんだ!
574 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 12:49:17 ] (setf test-list '(("above" . "上記の,方向,場所などを表して.") ("propose" . "提案する") ("afforded" . "余裕がある,can, could, be able toを伴って") ("dedicated" . "専用の"))) 見たいなりスト作って評価したら Coding system iso-lating-1-unix not suitable for "000c4e(:emacs-rex (swank:interactive-eval)) 見たいなエラーがでるんだがCLispってUTF-8対応じゃないの?
575 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 13:55:37 ] glibc か libiconv サポートがある環境なら UTF-8 のエンコーディングは備わってると思うよ。 SLIME (emacs) <---> SWANK (lisp) の通信設定がデフォルトの値 iso-lating-1-unix なんじゃないかな。 iso-lating-1-unix なストリームに utf-8 の文字流し込んでエラーになってるんだと思う。 ;; SLIME 側の設定 (Emacs) (setq slime-net-coding-system 'utf-8-unix) ;; SWANK 側の設定 (CLISP) (setq swank::*coding-system* "utf-8-unix")
576 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 17:06:26 ] >>575 できました! ありがとうございます
577 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 16:11:21 ] >>571 ナカーマ w
578 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 17:34:40 ] 相異なる要素からなる系列 seq の要素中 2 個を選んだ組合せをすべて表示し場合の数も表示する関数 (pair seq) で,例えば (pair abcd) が (A B) ; A を選び,残りの B,C,D から B を選んだ組合せ (A C) ; A を選び,残りの B,C,D から C を選んだ組合せ (A D) ; A を選び,残りの B,C,D から D を選んだ組合せ (B C) ; B を選び,残りの C,D から C を選んだ組合せ (B D) ; B を選び,残りの C,D から D を選んだ組合せ (C D) ; C を選び,残りの D から D を選んだ組合せ 6 ; 場合の数 4C2=4!/{2!×(4-2)!}=6 のように評価されるものを,必要なら関数 app を用いて定義せよ。 (defun merg (seq1 seq2) (if (null seq1) seq2 (cons (car seq1) (merg (cdr seq1) seq2)))) (defun app1 (seq elem) (merg seq (cons elem NIL))) このプログラムを教えてください
579 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 00:54:33 ] 宿題ならちっとは考えたフリしろよw もしくは宿題スレへ(lisperがいるかどうかは知らんが、lisp以前の問題だ)
580 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 03:05:54 ] >>578 もちろん教えてあげますよ。 ただ、宿題を持ち込む人は多いんだけど情報不足なんだよね。 1. 締切はいつまで?どんなレベルの解答がお望み? 2. Lisp の授業ははじまってどれくらい?一ヶ月?三ヶ月? 3. 教科書はなにで、どれくらいまで読んだ? 4. ズバリ答えがほしいの?教育的ヒントがほしい? 別にズバリ答えがほしいならそれで即解答しますんで、正直に答えてね。
581 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 09:53:44 ] >>580 正直ズバリ答えてほしいのが本音ですが・・・ ヒントだけでも良いです。 締め切りは明日で、Lispは半年程やってます。教科書はありません。
582 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 12:55:52 ] 教科書がないって、困ったな。HyperSpec とか読んでる? 指標がないと、どーかげばいいのかこっちも悩むじゃねーか。 たとえば、下のコードで何かわからない点はある? (defun pair (seq) (loop with counter = 0 for lst on seq for e1 = (car lst) do (dolist (e2 (cdr lst)) (format t "(~A ~A)~%" e1 e2) (incf counter)) finally (format t "~D~%" counter)))
583 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 13:19:14 ] たぶん再帰で書いてほしいんだと思った
584 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 13:34:09 ] フーン。じゃあこうか? (defun pair2 (seq) (labels ((rec (x xs n) (if (null x) n (let ((n (rec2 x (car xs) (cdr xs) n))) (rec (car xs) (cdr xs) n)))) (rec2 (e x xs n) (if (null x) n (progn (format t "(~A ~A)~%" e x) (rec2 e (car xs) (cdr xs) (1+ n)))))) (format t "~D~%" (rec (car seq) (cdr seq) 0)))) ブツブツ。ほんと世の中 Scheme に毒され過ぎだぜ…。過度の一般化じゃないか? そりゃ再帰のほうが一般的なのはわかるが、特殊なケースのほうが記述が短い場合に反復を使うのを恐れるべきじゃない。 なんだったら LOOP や DOLIST が再帰で実装されていると思えばいいんじゃないか?
585 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 13:35:14 ] すまん、インデントがメチャクチャになっちゃった orz
586 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 13:50:45 ] まあ普通はループで書くと思うけどね。宿題だから再帰するのかなと。
587 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 13:53:05 ] 本題から外れるが、 >>584 >>反復を使うのを恐れるべきじゃない。 禿同。再帰を使うだけで問題の本質は露わになる、わけじゃない。 時と場合を選べば、LOOP最強。
588 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:22:06 ] >>584 > なんだったら LOOP や DOLIST が再帰で実装されていると思えばいいんじゃないか? よくない。再帰で実装されてると想定して、たとえば (let (r) (dolist (x '(a b c) (mapcar #'funcall r)) (push #'(lambda () x) r))) => (C B A) となることを期待すると実装依存になってしまう。
589 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:50:13 ] loop って末尾再帰とは限らないんだっけ?
590 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 15:02:38 ] >>582 >>584 わからないとこ多いですね↓ loopとかforとか習ってません 関数の定義、分岐(if とかcond) リスト(list car) データのリンク(cons) とかですね。習ったのは。すいません もうすこし自分で考えてみようと思います
591 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 15:27:23 ] >>588 わざわざできない例をもってくるなよ…。 その例だと束縛をキャプチャしてるけど、その束縛を DOLIST が書きかえるんだからおかしいのは当然だろ。 束縛のキャプチャは CL じゃあ常識なんだから、CL の人はそんな事しないし気をつけるもんなんだよ。 Scheme かぶれはなんでもかんでも Scheme で考えるからハマるんだろう。 この例に限定しているつもりだったが、もちろん一般的には CL では再帰で実装されていると考えてはいけない。 俺の書き方に問題があったのは認める。普通 CL な人は IF と GOTO による実装をイメージする(macroexpand すれば一目瞭然)。 >>589 というか CL の DO* や LOOP は基本的に GOTO と IF で実装されてるから、ほぼ確実に再帰じゃない。 俺は再帰で実装している処理系を見たことがない。 >>590 やっぱり Scheme 風味な授業なんだな。じゃあ 584 のほうを提出したまえ。
592 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 15:39:20 ] CL から見れば 588 の例なんかは for(i=0;i<n;i++){list.push_back(&i);} ってやって、あとで i のポインタの先の値をみて文句を言うのと同じようなダメさを感じるわけ。 再帰でしか物を考えられない Schemer は、CL を使うときはもっと考えを切りかえてからきてくれ。 Scheme は良いものだが、だからといって他のすべてのその思想を押しつけることなどできないのだ。 身近だから CL を煽りにくるんだろうけどさ……所詮どっちもマイナーな世界だ。お互いを尊重して仲良くいこうや。
593 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 16:08:10 ] Schemer だって再帰を多用するわけじゃないでしょ Shiro さんも言っていたけど fold や map、for-each や srfi-42 などのユーティリティを多用するのがスタイル loop 的なものはあんまり使わないと思うけどね
594 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 16:15:30 ] >>591 (format t とか??なんですが
595 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 16:55:32 ] >>594 おれは>>584 じゃないけど、おまい授業出てないだろ。 format t は printf STDOUT みたいなもんだよ。~% はタダの改行。
596 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 17:00:33 ] 授業に出てるなら、こんなとこで質問する必要はないのでは?
597 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 17:19:39 ] 宿題を張った奴にここまで優しいのはこのスレくらいじゃね?
598 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 17:59:27 ] 宿題にはもっと妙な答えを教えてあげようよ。 今回のだったら tagbody と go で書くとか。
599 名前:デフォルトの名無しさん [2007/09/30(日) 19:15:23 ] Scheme の srfi-42 を使って書いてほしいんです><
600 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 19:16:58 ] >>599 そりはすれち
601 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 21:33:06 ] >>599 Gauche でやってみたよ (use srfi-42) (define (pair seq) (let1 counter 0 (do-ec (: xs seq) (: ys (cdr (member xs seq))) (begin (format #t "(~s ~s)~%" xs ys) (inc! counter))) (format #t "~d~%" counter))) gosh> (pair '(a b c d)) (a b) (a c) (a d) (b c) (b d) (c d) 6 >>600 スレちがいゴメン
602 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 22:43:18 ] >>601 うほ! ありがとございます! srfi-42 ムズカシイんです>< Gauche のマニュアルだけでは良くわかりませんでした>< サンプルがいっぱいのってるチュートリアルみたいなものがどっかにあれば、、、 スレ違いスミマセン
603 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 00:27:06 ] >>594 出力につかっていいの関数は何?使ってる処理系は何? 最初に聞いた質問にはちゃんと意味があって、こーゆう状況を防ぐために教科書や処理系を聞いてたんだよね。 大抵の環境なら (print (list a b)) と (print counter) にすれば動くと思うけれど。 >>598 そんなコードを見せても意味があるとは思えない。 俺はこの質問者もひょっとしたらモノになるんじゃないかと期待をしているのだよ。
604 名前:デフォルトの名無しさん [2007/10/02(火) 00:02:57 ] >>584 labelsやletやformatを使わないでかけますか?printコマンドは知ってます
605 名前:デフォルトの名無しさん [2007/10/02(火) 01:08:09 ] 任意の型のデータxを第一引数、cons型のデータのリストdを第2引数として取り、dの要素のうちで、そのfirst部分がxに一致する(ただし比較はequal()で行うものとする)ものがあればそのような要素の最初のものを返し、さも無ければnilをかえす関数assoc_equ()を定義せよ この問題できないんですけどどなたかできませんか?よろしくお願いします><
606 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 01:16:13 ] >>605 (defun assoc_equ (x d) (assoc x d :test #'equal))
607 名前:デフォルトの名無しさん [2007/10/02(火) 02:14:08 ] できました!ありがとうございます!!! 書き方がまだ習ってない技法なので、もっと簡単に書き換えるとどんなのになるのでしょうか? よろしかったら教えていただけませんか? ループなどでもできると聞いたので。。。
608 名前:デフォルトの名無しさん [2007/10/02(火) 02:20:35 ] その昔、テーラー展開の式が書いてあってこれを証明せよって問題があった。 で、その回答に「テーラー展開より」って書いたやつがいたのを思い出した。
609 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 02:27:10 ] コーモンリップス
610 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 02:38:30 ] >>609 夜中にそんなこと言ってるからおまえは駄目なんだよ
611 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 03:04:53 ] (´・ω・`)こ、こーもん・・・
612 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 22:22:06 ] >>607 半年で let がでてこないのはすごいなぁ。 書いてもいいけど、もう締切は過ぎたんじゃないの? ループによる解答は 582 で出てるよ。
613 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 05:12:01 ] ある情報を処理するアプリケーションをC言語で書きました。 で、そのアプリケーションは処理結果としてdouble型の数値を3つ結果として出力します。 ここからが質問なのですが、 ウェブサーバを立ち上げて、クライアントが情報を入力すると、このアプリケーションが処理して 処理結果の数値をデーターベースに格納出来るようにしたいんです。 この用途にKahuaは使えるのでしょうか? もしくはコレが出来るライブラリみたいな物は有りますでしょうか?
614 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 12:28:35 ] >>613 そのアプリケーションをあなたが書いた物と仮定する。 やりたいことは可能だが、意味のある事じゃない。 むしろ元アプリケーションをfastcgiライブラリを使うように少し修正してmod_fastcgiを使うか shellでcgiを書いて受け渡す方が楽だろう。
615 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 22:17:49 ] >>614 意味がないとまで断定するこたぁないと思うが。 AllegroServe で R と連携する例。 cl-www.msi.co.jp/solutions/knowledge/lisp-world/r-demo/r_fuelframe
616 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 23:14:32 ] >>615 元コードがCで書かれていて、さらにKahua上から制御できるかいと聴かれているのだから意味が薄いって事なんだよ。 しかもあなたの提示はAllegroServeじゃないか。 そりゃ元コードがCommonLispだったら楽しそうだし、もしも元コードがSchemeで書かれていればKahuaでの実装に美しさを感じるだろうことは否定しないんだけど。 ちなみに僕のおすすめはFastCGIでLisp実装っていうもっと尖っているけどApacheあたりと仲良くモードです。
617 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 23:38:40 ] ヒント: ここは Common Lisp 入門スレ Kahua でも AllegroServe でも別にいいんじゃね? 標準入出力/パイプ/ソケットで制御するなら別にどっちでもかわらんだろう、と思って R をごにょごにょする例を紹介したのだが。
618 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 23:51:05 ] いいじゃん、「意味」なくても。 >>613 の要件ってLisperが気にするほど効率要求されてないと思う。 だとしたら、せいぜい AllegroServe+FFIとか、gauche からCを呼びだす方法とか (おれはkahua知らないけど)、軽く面白そうな選択肢を教えてあげりゃいいんじゃね?
619 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 23:52:08 ] >>617 いや、CommonLispスレに元CコードをKahuaとまぜこぜ可能かって聴かれたからこそあの回答なんですけど orz そりゃ僕だって全部CommonLispでってのはスレ的に正しいとは思うけどあんまりなんじゃないかい? なんとなく質問した奴の状況が感じられる状況と似た境遇にあった俺が2ch的にあまちゃんなんだろうけどさ。
620 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 00:12:13 ] 「元CコードをKahuaをまぜこぜ可能か」って質問だったの? 「アプリケーションをC言語で書きました。」だからスタンドアロンな実行バイナリをイメージしてたよ。 んで >>615 を紹介したわけ。別に Kahua でもいいかなーと。run-program で起動して結果をうけとるでもいいんじゃねーと。 あくまで外部コマンド + Lispサーバで、「全部CommonLisp」とか書いたつもりはないけど…。
621 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 00:24:45 ] >>620 あー、今夜の僕は読解力ないかも(週も半ばなのに大分呑んだし) 僕が解釈したのは元の計算コードをCで記述済みでウェブサーバにKahuaを使った場合にそのCコードの産物とどうやってやりとりしたらいいの? って事だったんで、そこまで境界がきれいにわかれてるならLispに拘らない方がいいのじゃないのっていうスレ的には正反対の結論がでちゃったんだ。 ;;;うーむ、今受験の引っかけ問題や詐欺師がきたら死ねるなぁ。
622 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 18:49:58 ] (setq abcd (list 'A 'B 'C 'D)) (defun merg (seq1 seq2) (if (null seq1) seq2 (cons (car seq1) (merg (cdr seq1) seq2)))) (defun app (seq elem) (merg seq (cons elem NIL))) (defun comb (seq) (defun ith (que i) (if (= i 1) (car que) (ith (cdr que) (- i 1)))) (defun lp (tmp i n) (print (app (list (car tmp)) (ith tmp i))) (cond ((null (ith tmp 3)) n) ((null (ith tmp (+ i 1))) (lp (cdr tmp) 2 (+ n 1))) (T (lp tmp (+ i 1) (+ n 1))))) (lp seq 2 1)) の関数combを変更して 相異なる要素からなる系列 seq の要素中 num 個(num: 系列長以下の非負整数)を選んだ組合せをすべて表示し場合の数も表示する 関数 (comb seq num) を作る問題を教えてください
623 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 18:51:10 ] たとえば(comb abcd 3)の評価は (A B C) (A B D) (A C D) (B C D) 4 のようになります。(comb abcd 0) は 1 と評価されます