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))
488 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 10:14:22 ] わかってない奴すべてを含む集合は果たして平穏無事であるか
489 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 12:58:41 ] あるときっと。信じれば夢はきっと叶うさ。
490 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 15:12:26 ] 2ch で遊ぶのはいい加減にして、早く誰も読まない論文を書く作業に戻るんだ。
491 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 16:19:32 ] 論文を書くためにはネタを仕込まないとね。 それはともかく、Common Lispで書いたソフトをコンパイルしておいて 他の.exeから呼び出して実行するなんて使い方はできるものだろうか? 分かる人が居たら教えてくれ。 既存のGUIと通信を行うモジュールを流用して計算エンジン部分だけLispで作ってみたい。 あ、プラットフォームはその既存のGUIの関係でWindowsです。
492 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 16:27:22 ] 誰も読まない論文 ってのはなかなか哀愁を誘う良い言い回しであるなw
493 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 16:45:25 ] ライトオンリー
494 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 18:25:39 ] Lispって科学技術計算に向いてる?
495 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 19:26:44 ] 愛を育てるのには向いてる
496 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 19:30:54 ] 講座初日に眼鏡を忘れ、倫理学と論理学の教室を読み間違えた挙げ句、出席を取らない講師に突然愛を語られたみたいなものだろうか?>>495
497 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 19:36:39 ] >>491 できる。教えてもらわないと出来ないような人には難しいかもしれないが。
498 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 20:17:54 ] は?
499 名前:495 mailto:sage [2007/09/03(月) 20:21:37 ] 愛と AI をかけました………………
500 名前:デフォルトの名無しさん mailto:491 [2007/09/03(月) 21:53:12 ] >497 Thanx! 可能だと言う事がハッキリするだけでもやる気が出るよ。 何しろこっちはLispに関して全くの素人なので これから勉強しながら方法を探すよ。 ところでそういう事に便利そうな商用Lisp (Allegro Common Lispなど)を使えとか 言うんじゃないよね。あれ、高いからな。 自分ではKCLを使えばコンパイラが Cのソースを吐いてくれるそうなので、 そっちをいじれば何とかなるかなと思っている。
501 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 22:16:45 ] ACL は Express エディションならフリー。 ヒープ制限があるので大規模な処理は無理だが。 KCL は GNU に寄贈されてメンテナがかわりにかわって GCL (GNU Common Lisp)という 名前になってる。派生した ECL ってものある。 つうかソケットで通信とかなら C のソースがうんぬんは不要だと思うけど…。
502 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 22:33:05 ] Lispworksを日本で購入できる場所ないのかな?
503 名前:500 mailto:sage [2007/09/03(月) 22:47:13 ] >501 ACLのExpress editionはは使ってみようとしたんだが なぜか私のデスクトッブにはダウンロード出来なかった。 試しに古いノートPCにやってみたらできたので どうもIE7が邪魔してるような気がする。 GUIモジュールとの通信はソケットとかじゃなくて 単純に呼び出し時の引数渡しみたい。 まだ良く調べてないが。
504 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 23:07:59 ] >>503 フーム…ちなみに C と Lisp の経験はそれぞれどれくらい? あと、まずその GUI モジュールとやらについて一通り勉強するのが先だと思う。 今の状態だと、たとえば Lisp じゃなくて Python で〜ってケースでも どこから手をつけていいかわかんない状態でしょ?まず、ターゲットをよく知らないとね。 大抵の C のライブラリは当然 C の関数呼び出し形式のインターフェースしかない。 他のシステム(Lisp に限らないよ。ネットワークのむこうの C のプログラムとかね)と繋ぐなら、通信部分は自分で作ることになる。
505 名前:491 mailto:sage [2007/09/03(月) 23:10:52 ] あ、 「既存のGUIと通信を行うモジュール」と言うのは GUI及びLAN経由で他のPCと通信する機能を 兼ね備えたモジュールがあってそこから 計算エンジンが呼び出される構成って事。 書き方が紛らわしかったね。
506 名前:503 mailto:sage [2007/09/03(月) 23:42:18 ] >504 お察しの通りCでも大きなブログラムを一から書いた事は無い。 せいぜい教科書の演習問題レベルか他人の書いたブログラムを ちょっと変更したくらい。Lispの経験はほとんどゼロ。 そんなレベルで難しい事をやろうとするなと言われそうだが まあ、趣味でやってる事なので。 まずはLispで書いたソースをコンパイルして 他のEXEから呼び出す事が可能なモジュールを 作れるかどうかを知りたかったのよ。
507 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 00:04:43 ] 共有ライブラリを生成できる処理系はいくつかある。 有償なら ACL, LispWorks、無償なら ECL (GCL もできるのかな?使ったことないから知らん) あたりで可能。 Windows で使えるかは知らないけど。あと、この機能を使うにゃー C に加えて Lisp の知識も要求される。 つうわけで、技術的には可能だが、たぶんあなたの期待してるようなものじゃない。 残念ながら今の Lisp の世界では「Lisp から C のライブラリを呼び出す」のが一般的なんだよねぇ。 Foreign Function Interface といって、C のライブラリを Lisp から呼び出す機能。 ECL みたいに C のプログラムに埋め込んじゃえるタイプのもあるが、これをやるにも C と Lisp 両方の 知識が要求される。逆に知識があれば VB に埋め込んだりもできる: www.cs.stevens.edu/~dlong/hacks/vbecl/index.php とりあえず C か Lisp、どっちかはマスターしよう。Lisp ならこのスレで力になるよ。
508 名前:491 mailto:sage [2007/09/04(火) 00:17:44 ] 結局のところ、Lispの関数を呼び出す時のパラメータ形式と (多分)Cが関数呼び出しする時のパラメータ形式を変換する 小さなモジュールを作って間に挟めばこの目的にはOKって事かな? そうすればLispコンパイラが吐き出すCのソースはいじらなくても、 objの方をリンカーにかけてexe化するだけで良いのかな、多分。
509 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 00:48:16 ] うーん、まず Lisp の側からつっこむとね、まず貴方はデザイン上の撰択をしないといけない。 ECL を使うと仮定すると次のような方法がある。 1. GUI ライブラリが DLL として提供されているなら FFI 経由で Lisp から使う (この場合、コンパイラの出力をいじるとかは必要ない) 2. GUI ライブラリの機能をラップして DLL にして Lisp から使う 3. GUI ライブラリをソケットとか別プロセスから操作できるようにしたてて、Lisp からはそのインターフェースで操作する 4. ECL の機能をラップした DLL を作成して、それを C プログラムにロードして使う 4. しか眼中にないようだが、それは要求されるスキルも高く、かつあんまり楽じゃない。たとえば、Lisp の知識がないと あるオブジェクトを管理しているのは Lisp の領域なのか C の領域なのか区別をつけることすら難しい(…と思うけど、どう?)。 あとは、C をはじめたばかりのようなので、プログラムといえばコンパイラでコンパイルして exe か dll にしたもの、 というイメージがあるんだろう。ECL で「コンパイルする」というと確かにネイティブコードを生成するが、それは exe でも dll でもないんだ。(まぁ、実行形式や共有ライブラリも生成できるけど…) > (compile-file "foo.lisp") ;; gcc でコンパイルしてネイティブコードを含む .fas ファイルを作成 foo.fas > (load "foo.fas") ;; .fas をロード
510 名前:508 mailto:sage [2007/09/04(火) 00:52:52 ] >507 そうですか、上で書いたような安直な方法は多分使えないと。どうしようかなー? Lispから呼び出せるGUI&通信モジュールを自作するのは多分もっと大変だし。 あまり大変ならLispでエンジン書くのを諦めるしか無いかな? 最後にひとつだけ質問。 (商用Lispの付加機能じゃなく)一般的なLispシステムのコンパイラが吐く objはそれ単体では自立したモジュール(exeやdll)には出来ないって事ですよね。 ガーベッジコレクションとかが欠けてるし。
511 名前:510 mailto:sage [2007/09/04(火) 01:15:26 ] >509 ちなみに私が使おうと考えていたGUIは ライブラリ形式ではなくて一固まりのモジュール(.exe)なのです。 それがdllを介してあるいは直接にエンジンを呼ぶ形式。 なのでこちらからは呼べなくて呼び出される一方なのです。
512 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 01:33:31 ] まぁ、まず Lisp を勉強しようや…。C とは違う部分もあるんだから。 実行形式には「できる」。ただ、C のランタイムは libc や mcsvcrt としてシステムに既に存在している場合が多いけど、 Lisp のランタイムは普通のシステムには存在しないので配布物に含むことになる。 商用 Lisp はこの時に、コンパイラ機能とか配布物に要らないだろうという機能を削ったりできる。 CLISP で作成した .exe := ランタイム数メガ + プログラム部分 => 数メガ ECL で作成した .exe := プログラムサイズ + libecl.dll (4Mくらい?) SBCL とかはネイティブコードコンパイラを備えているため、ラインタイムとコアイメージはでかい。 10M を余裕で超える。C でいったら GCC がまるごとついてくるようなもんだからね。
513 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 01:40:48 ] >>510 ふーんけったいなライブラリ(って言うの?)だね。いわゆるプラグイン形式って感じかなぁ。 すると DLL を与えるしか方法がない感じなのかな? しかもインターフェース固定か。勘でいってるけど、あんまり Lisp のインクリメンタルな開発を活かす機会はなさそうかなぁ。 外からいじれるようにしたりして嬉しい? 直接エンジンを呼ぶってのはよくわからないな。見てみないとよくわからんね。非公開のやつなの?
514 名前:510 mailto:sage [2007/09/04(火) 02:17:24 ] >512 実行形式にはできるんですね。 そりゃそうか、Basicでも出来たもんなあ。 配布イメージがでかくなるのは別に構いません。 >513 そうなんですよね。 良く考えたら既成のGUIモジュールから呼べるように 毎回コンパイルしてたらインクリメンタルな開発手法が 使えなくてLispを用いる意味があまりなくなりますね。 デバック用途のためのみであっても GUIと通信モジュールは自作するしかないか? で、最後に可能なら既存のリッパなGUIから呼べるように細工すると。 いや、いろいろ教えて頂いて有り難うございます。
515 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 11:52:52 ] >>514 図表を扱う向きではないけどTKでよければwindowインターフェースはある。 リアルタイムに何か表示するならOpenGLのインターフェースもある。 なのでこれらで間に合う範囲ならそれ程困らないが、ポトペタなウィンドウモジュールが欲しいとなると 商用のを買わないとダメポ。
516 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 14:07:03 ] Common Lispで書いたプログラムを起動してそれとソケットで通信するものを DLLとして作成するというのはどうかな。 DLLの関数はそのプログラムにお伺いを立てて下されたお答をそのまま返す。
517 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 15:13:18 ] CLでDLL作れるの?
518 名前:514 mailto:sage [2007/09/04(火) 19:55:45 ] >516 それグッドアイデアですね。 そのやり方ならコンパイル前(Lisp処理系から起動)でも コンパイル後(GUIから呼び出されて起動)でも 最悪DLLさえ作り分ければ、きっとうまく行きそうな気がします。 その方針でやってみる事にします。 皆さん、いろいろ有り難うございました。 Lisp絡みで分からない事が出て来たら 質問させて頂きたいので、 その時はまたよろしくお願いします。
519 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 23:16:38 ] GoogleからLisp VMとOSが無料配布されるという夢を見た。
520 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 02:04:10 ] lispなシェルって無いの? > (echo "hoge") hoge みたいな奴
521 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 02:16:25 ] >>520 MonaOSにSchemeなシェルがある
522 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 02:16:45 ] >>520 clisp.cons.org/clash.html
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) となることを期待すると実装依存になってしまう。