【入門】CommonLisp【 ..
751:デフォルトの名無しさん
05/11/08 00:30:53
つうかやる気ねーんだろ?授業をちゃんと聞いてなかったみたいだし。「
いつも思うんだけどなんで〜日までの宿題ですやる気ないんで教えてください、
って素直に言えないのかね?まさか宿題である事を隠してるつもりなのか?なら
人をナメすぎだな。ほらこれを提出してごらん。俺は親切だから罠をしかけたりしないよ。
(defun solve (a b c)
"ax^2 + bx + c = 0"
(let ((A (- b))
(B (sqrt (- (* b b) (* 4 a c))))
(C (* 2 a)))
(values
(/ (+ A B) C)
(/ (- A B) C))))
752:デフォルトの名無しさん
05/11/08 00:39:19
漏れのエスパー能力によると>>747が求めているプログラムは Lispではないな。
753:デフォルトの名無しさん
05/11/08 00:41:43
>>750
±にあたるものが存在してないのが問題の山なのかも。
存在してても使いにくそうだけど。
754:デフォルトの名無しさん
05/11/08 05:01:13
そういえば複素数も扱えるんだよな
でも>>751はaが非零でないことくらいはチェックした方がいいと思う
755:747
05/11/08 22:31:36
どうもどうも。おかげさまで解決しました。
視点を変えました。>>751のプログラムもある意味参考にさせていただきました。
756:デフォルトの名無しさん
05/11/08 22:55:05
>>755
変数名変えた程度で提出してそうだな.
757:デフォルトの名無しさん
05/11/09 10:52:42
数年前からWIREDで学生のレポートのコピーと教授のいたちごっこが記事になっ
たりとかしてるけど、いっこうに解決してないよな、この問題。
数ヶ月か一年おきくらいの間隔で問題にした記事を見てる気もする。
Comm. ACMの先月号でも Academic Dishonesty and the Internet つって
とりあげてるし。なんでもclass project(宿題というよりはレポートに相当か)
を外注に出す奴までいたそうだ。何のために大学に来たのかと小一時間(ry
そういう学生のイカサマは許さんと頑張ってくれる教官は日本の大学にも
いるんだろうか。なんかそんなやつ放っとけ面倒だと知らんぷりになりそうなんだが。
758:デフォルトの名無しさん
05/11/09 10:58:03
今後の(学内or社会人)人生で困るならその程度だし困らないならそれもまたその程度。
759:デフォルトの名無しさん
05/11/09 11:26:00
企業活動もアウトソーシングに頼る時代なんだから別にいいんじゃない?
卒論だって金でやってもらえる時代ですよ。
教官だって普段の学生の様子を見てれば、まじめにやってるやつと
金で解決したやつの違いくらいわかるでしょ。わからなかったり、
わかっても注意しなかったら、その程度の教官ってこと。
でも>>747はこんなとこで聞く前に、教官に質問しろ。
払った授業料以上のものを貰わないともったいないぞ。
質問しても答えてもらえなかったらダメな先生に当たったと諦めろ。
760:デフォルトの名無しさん
05/11/09 11:36:09
教官としてはどうでもいいんだが。精査したり注意してやる義理もない。
761:デフォルトの名無しさん
05/11/09 11:47:02
無駄なレポート書く暇あったら自分の勉強したいよ
762:デフォルトの名無しさん
05/11/09 11:50:21
どうでもいいならレポートや宿題なんて出さないで欲しいよな。
763:デフォルトの名無しさん
05/11/09 12:01:17
>>762
君たちにとって無駄でどうでもいいのなら提出しなければいい。
764:デフォルトの名無しさん
05/11/09 12:03:45
単位を貰うために、最小限の労力とリスクで、レポートを仕上げる
765:デフォルトの名無しさん
05/11/09 12:30:01
単位をもらうためならそれでいいよな。
単位に値しないなら労力を割かないほうがよい。
単位取得を重要視するなら学生側でそれくらいのマネジメントくらいしろ。
766:デフォルトの名無しさん
05/11/09 12:33:44
やっぱ宿題には黙って答えだけだな。
余計な事言うから >>757-765 のような板違い連中を釣り上げちゃう。
767:デフォルトの名無しさん
05/11/09 20:47:57
自分の望むレスだけしか見たくないんですか?
答えだけ欲しければ宿題スレへいけ。
768:デフォルトの名無しさん
05/11/09 21:07:39
じゃあ教授と学生のいたちごっこを見事な再帰で表現>>768
769:デフォルトの名無しさん
05/11/09 21:51:43
うちの研究室、プログラムの類似度判定やってた。
教授が集めてきた学生たちのレポートを実験の対象にしてた。
結果、年度・言語に関わらず、2〜3の大きいグループができると判明した。
770:デフォルトの名無しさん
05/11/13 01:34:50
以下のようなことを実行するにはどうすればいいのでしょうか?
(setf a '(+ 1 2))
(setf b '(+ 3 4))
(setf c '(- b a))
(myfunc c)
4
あるリストファイルを読んで内部にツリー構造をつくり、
それを一気に実行することを望んでいます。
具体的には、内部で以下のように展開してから実行したいと
思っています。
(eval '(+ (+ 1 2) (+ 3 4)))
何かヒントだけでも頂けたら嬉しいです。どうぞよろしくお願い致します。
m(_ _)m
771:デフォルトの名無しさん
05/11/13 01:58:53
>>770
こんなんでどうだ。
(defun expand (x)
(cond ((symbolp x) (expand (symbol-value x)))
((numberp x) x)
((listp x) (cons (car x) (mapcar #'expand (cdr x))))
(t (error "unknown type: " x))))
(defun myfunc (x) (eval (expand x)))
772:デフォルトの名無しさん
05/11/13 02:45:02
変った宿題だな。とりあえず読み込みたいリストファイルの例を示して。
それによって難易度が違うんで。
(+ 1 2)
なのか
(setf a '(+ 1 2))
なのか。使う関数は +, *, -, / なのか Lisp のフル機能の使うのか,など。
773:770
05/11/13 12:58:24
>>771
ご回答ありがとうございます。m(_ _)m
採用させていただきます。
初心者のくせに変にマクロに拘ってハマってました・・・
>>772
自主制作ソフトに必要な機能なんです。(趣味です)
リストですが・・・
vA_out 1
vB_out 2
vC_out 3
vD_out 4
fPlus1_in vA_out
fPlus1_in vB_out
fPlus1_out fMinus1_in1
fPlus2_in vC_out
fPlus2_in vD_out
fPlus2_out fMinus1_in2
fMinus1_in1 fPlus1_out
fMinus1_in2 fPlus2_out
fMinus1_out retrun
を予定してます。ちょっと冗長ですが・・・。
関数は将来的に増える予定です。Lispのフル機能を使っていきたいと思います。
774:770つづき
05/11/13 13:03:05
>>773のリストを読み込んで、内部で>>770のようなツリーを組み立て
最後に実行して答えを返す予定です。
>>772
問題にご興味を持っていただきありがとうございました。
もし宜しければ、ヒントなど頂けたらと思います。
775:デフォルトの名無しさん
05/11/13 13:54:45
なるほど S 式じゃないプログラムリストって意味だったのか。
このプログラムの動作はどんな動きをするんかな?
今はこのファイルを Lisp のリスト形式 (S式) に手動で変換してるんだよね?
たとえばプログラム言語としての機能を持たせたいなら(条件分岐とか)
>>740 からのレスが参考になるかもしれないし、このリストをもう少し S 式風
にカスタマイズできるなら read 系の関数を使って字句解析を省略できる。
776:770
05/11/14 20:37:38
>>775
実はあるプログラム言語をパクろうと思ってます。(^^;
もちろん、自分なりの発展はさせるつもりですが。
>今はこのファイルを Lisp のリスト形式 (S式) に手動で変換してるんだよね?
そうです。
>たとえばプログラム言語としての機能を持たせたいなら(条件分岐とか)
>>>740 からのレスが参考になるかもしれないし、このリストをもう少し S 式風
早速参照してみます。
>にカスタマイズできるなら read 系の関数を使って字句解析を省略できる。
あまり複雑なS式はむりですが、出力の形式を弄る程度でできるS式には
しようと思ってます。
(setf vA 1) ←この程度ですが・・・(^^;
また、質問させていただくかもしれません。今回はアドバイスありがとうございました。
777:デフォルトの名無しさん
05/11/15 17:38:38
770 とは別人なのですがついでに聞かせて下さい。
Lisp コードの中にいわゆる普通の infix の数式を入れて書きたいと思ったら
どういう手が考えられるでしょうか。
つまりこんな感じで出来ればいいんですけど
(defun f (x y) ( + 1 y %%% x^2+y^3 %%% ))
プリプロセッサを通すとかじゃなくてやろうと思ったらどうしますか。
778:デフォルトの名無しさん
05/11/15 17:57:12
つ URLリンク(groups.google.com)
つ URLリンク(groups.google.com)
779:777
05/11/15 18:22:40
本当にありがとう。やっぱ reader macro で出来るんですね。使います。
780:デフォルトの名無しさん
05/11/15 23:08:40
使うのかよ!
781:デフォルトの名無しさん
05/11/16 12:42:27
reader macroのわかりやすい解説ってないでしょうか?
782:デフォルトの名無しさん
05/11/16 13:11:18
>>781
なんだかんだ言って CLtL2 が一番わかりやすかった。w
783:デフォルトの名無しさん
05/12/06 16:53:20
規格書は紙で持っとくと、初心者レベルの時でも結構役に立つよ。
ansiの店で$18で売ってます。
784:デフォルトの名無しさん
05/12/07 10:30:59
本スレのCLOSの話題について行けないバカな漏れに
MOPのなんたるかから教えて下さい。
785:デフォルトの名無しさん
05/12/07 13:04:06
>>784
AMOP読め。または図書館へ行って昔のbit別冊を探せ。
786:デフォルトの名無しさん
05/12/07 19:49:24
AMOPって今でも、新刊買えますか?
TinyCLOSは、いじってて面白かったなぁ。またいじりたいなぁ。
Kiczalesは、Aspect orientedなる概念を提唱して、ずぅーっと
遥か彼方まで行ってしまったね。
Kiczalesのアイディアを具体化しようとしている連中は、なぜか
Java、Rubyにご執心みたいだけど。
787:デフォルトの名無しさん
05/12/07 20:12:37
>>786
買えるよ。日本アマゾンは3〜5週間だが、USアマゾンなら24時間以内発送。
URLリンク(www.amazon.co.jp)
URLリンク(www.amazon.com)
788:デフォルトの名無しさん
05/12/07 20:15:14
On Lisp邦訳の次はAMOP邦訳に挑戦して頂きたい。>野田さん
789:デフォルトの名無しさん
05/12/07 22:00:57
翻訳終わる頃には、ネタとして終わってる悪寒。
最先端とはいわないまでも、半分より前、できるなら先頭グループ
を走りたいなら、原著は避けられないと思うよ。
まぁ、かくいう俺も日本語と英語しかわからないのだけどな。
790:デフォルトの名無しさん
05/12/07 22:42:59
先頭グループもなにも、MOPやCLOSはかなり前からあるんじゃないの?
791:デフォルトの名無しさん
05/12/08 02:30:22
>>786
そうか? AMOP からさほど進化したとは思えないんだが…
792:デフォルトの名無しさん
05/12/14 23:14:08
clisp上でMAXIMA使いたいんですが解説サイトとかありませんか?
最新版に対応しているところが見つからないんですが
793:デフォルトの名無しさん
05/12/20 01:46:09
climacs に期待...
794:デフォルトの名無しさん
05/12/20 19:14:13
Schemacsとか作る奴はおらんのか?
795:デフォルトの名無しさん
05/12/20 23:38:21
climacs は SBCL ありきだからなぁ。Scheme で Native Thread が使えて
ネイティブコンパイラな実装があれば話は別だが。
796:デフォルトの名無しさん
05/12/21 00:26:33
climacsも概ね動くようになったところで飽きて放置に100りちゃーど
797:デフォルトの名無しさん
05/12/21 07:51:11
>>794
ngscmというものならある。
798:デフォルトの名無しさん
05/12/23 05:33:14
シンボルを全部日本語にして日本語Lispとして売り出す(笑)
799:デフォルトの名無しさん
05/12/23 07:25:40
>>798
日本語Lispなら、S式はリストの先頭でなく末尾を関数とみなすようにしないと。
800:デフォルトの名無しさん
05/12/23 09:57:03
(甲 3 とする)
(乙 5 とする)
(甲 乙 対にする) => (3 . 5)
((甲 2 加える) 乙 乗ずる) => 25
助詞が欲しいな。
801:デフォルトの名無しさん
05/12/23 10:13:37
もともとのLispも英文にはなってないんだから、
日本語Lispといっても別に、その辺まですり合わせなくていいんじゃないかな。
802:デフォルトの名無しさん
05/12/23 13:05:23
>>799-800
括弧を取ればそのままFORTHになるという利点(?)があるな。
803:デフォルトの名無しさん
05/12/23 13:54:53
それだったら最初から Forth の方が。
つまり GikoForth なわけですが。
804:デフォルトの名無しさん
05/12/23 19:59:15
(おぼえる かいじょう (い)
「0から い までかけあわせる」
(もしも (ぜろか い)
1
(かける い (かいじょう (いちひく い)))))
805:デフォルトの名無しさん
05/12/23 20:28:09
(いれる ●にわとり 「こけこっこー」)
(いれる ●ねこ 「にゃぁにゃぁ」)
(いれる ●ぶた 「ぶーぶー」)
(みる ●にわとり)
→ こけこっこー
806:デフォルトの名無しさん
05/12/24 01:10:35
SBCL の Win32 ポートがいよいよマージされるみたいだな。
URLリンク(sourceforge.net)
;; Macho のアーカイブ止まっちゃったのか。
807:デフォルトの名無しさん
05/12/26 22:08:00
>>805
carとかcdrとかcdadarとかはどうやって表現するんだ。
808:デフォルトの名無しさん
05/12/27 01:04:54
car ⇒ 住所登録所の内容
cdr ⇒ 値登録所の内容
cdadar ⇒ 住所の値の住所の値登録所の内容
809:デフォルトの名無しさん
05/12/27 01:47:02
car => これ
cdr => それ
cdadar => そこそこれ
810:デフォルトの名無しさん
05/12/27 01:55:43
car/cdr は箱(コンスセル)から要素を取り出す操作だから、
car: とりだす
cdr: つぎをとりだす
cdadar: つぎのまえのつぎのまえをとりだす
関数は動詞且つ和語で統一したい所だけど、苦しいかな...
811:デフォルトの名無しさん
05/12/27 02:26:21
>>809
それイイネ
812:デフォルトの名無しさん
05/12/27 10:26:20
>>809
anaphoric ifのitはどうすんだ
813:デフォルトの名無しさん
05/12/27 11:57:15
>>812
「あれ」
814:デフォルトの名無しさん
05/12/30 19:42:32
URLリンク(clozure.com)
x86 の文字がちらほら見えるけど、OpenMCL も x86 に移植されるみたいだね。
素晴らしい。
815:デフォルトの名無しさん
06/01/09 22:24:16
lispで作った関数なんかは、何処に保存されてるのでしょうか?
lispのコードをいじる課題が出たのですが、
コードの保存を自分でやらなきゃならなくなって困ってます。
816:デフォルトの名無しさん
06/01/09 22:52:09
教官に聞け
817:デフォルトの名無しさん
06/01/09 22:59:50
それを見つけるのが課題。。
818:デフォルトの名無しさん
06/01/10 10:08:05
「エディタで新規にファイル作ってその中に書け」が答のような気もする
っていうかLisp関係ないな
対話的にしかLispを使わない授業だったと推測するが
819:デフォルトの名無しさん
06/01/10 14:24:33
>>815
それ、Smalltalk使いの私も訊きたいです。
Smalltalkでは、関数(メソッド)が自身のソースを属性として持っていて比較的
容易にたぐれるんですが、Lispでは環境内でのソース管理はどうなっているんでしょうか?
818の行間を読むと、対話的に作られた場合、関数は自身にかかわるソース情報を
(デコンパイルなどで特殊な方法で別途得る以外)他の一般的な言語と同様、
いっさい失ってしまうのが当り前…というような印象を受けるのですが。
820:デフォルトの名無しさん
06/01/10 22:47:35
>>819
ANSI CL の範囲では無いと思う。ANSI Smalltalk もソースコードの管理までは
規定してないでしょ?
821:デフォルトの名無しさん
06/01/10 23:15:09
function-lambda-expression()
lambda 式が取れなくても規格合致だけど
822:デフォルトの名無しさん
06/01/11 06:36:04
>>819
「関数」はソース+定義環境だから、ソースだけ取れてもそれを保存
するみたいなことには向かないだろうね。デバッグの助けにするだけなら
いいだろうけれど。
(let ((n 0))
(defun incr (k)
(incf n k)))
なんてした時に、incrのソースはどこからどこまで? ってことね。
823:デフォルトの名無しさん
06/01/11 16:34:30
なるほど。Smalltalkのブロック(クロージャ)のソースは、メソッド(関数)のそれと
違って容易にはたぐれない…のと状況は似ていそうですね。ありがとうございます。
824:デフォルトの名無しさん
06/01/11 17:02:36
URLリンク(www.shiro.dreamhost.com)
これ読んでLisp使いたくなりました。
入門サイト教えろこの野郎m(__)m
825:デフォルトの名無しさん
06/01/11 18:29:40
>>824
ぐぐれこの野郎(^^)
826:デフォルトの名無しさん
06/01/11 18:41:45
>>824
URLリンク(www.geocities.jp)
xyzzy向けの内容が入ってるけど
827:デフォルトの名無しさん
06/01/11 20:37:58
>>824
URLリンク(www.h7.dion.ne.jp)
日本語のサイトではここが一番良かった。
828:デフォルトの名無しさん
06/01/13 19:50:45
すまんがLispで生産性があがるってのはどのへんのせいなのでしょうか?
>>824 の本を読んで興味持ったんだけれどよくわからんです。
コンパイル->実行とかの過程も処理対象にできるっていうのはやりようで面白いことできそうかと思ったんですが。
いまはC#つかいなのですが、.NETでのReflection,CodeDOMあたりの機能でしょうか。
829:デフォルトの名無しさん
06/01/13 20:10:48
いろんな要素が絡んでるから難しいけど。
最近機能が増えた言語や開発環境(なんでもいい)で、これが入って
生産性が上がったなーってもんをリストアップしてみ。
そのリストはLispの生産性の高さの理由のリストとかなり重なると思うよ。
830:デフォルトの名無しさん
06/01/14 01:43:00
使用者への効果でいうと「マルチパラダイム」が一番大きいと思う.型がない.
手続き型でも関数型でも論理型でも並列型でもオブジェクト指向型でも,それ
に合わせられる.クラスによる分類が向かない分野では,迷う事なくそれ以外
の手法をとれるしね.
マクロによるプログラム変形とかはそういった言語カスタマイズのための道具
で,本当はこの「どんなパラダイムでもどんとこい」というのが最大のメリッ
トだと思う.個人的にはね.
831:デフォルトの名無しさん
06/01/14 04:40:52
あのー
おばかで申し訳ないですが、
自分、VC++でコンソールアプリ作っております。
一部のc++の関数をLispで置き換えたいと思っておるのですが、
これって可能なんでしょうか?
おしえてえらいしと
832:デフォルトの名無しさん
06/01/14 13:24:37
>>831
だいたいできると思うけど、GC関係でいろいろややこしいところは覚悟しないといけない。
833:デフォルトの名無しさん
06/01/14 14:01:57
可能だけど,ある程度 C++ と Lisp の知識がいるよ.
1) DLL を出力できる Lisp コンパイラをもっている (普通の DLL と同じ)
2) ecl を組み込む
3) プロセス間通信する
3. がいちばん簡単かなー
834:デフォルトの名無しさん
06/01/14 17:27:18
>>829
C++からC#にかわったんだけど
・Generics(これはC#1.0になかったものとして) テンプレートでないのがちょっと不満。
・リフレクション
・デリゲート 呼び出しをオブジェクト化することでいろいろ使える。
・イベント デリゲートの呼び出し管理の簡略化
・リモーティング プロセス間呼び出しを楽にした感じ
・インテリセンス(これは開発環境) これあってすごい楽になった。ヘルプとか引く回数激減。
条件に基づいてコード生成、それの管理とかできるともっといろいろ面白いことできるのかなぁとおもうけど。
835:831
06/01/14 17:46:11
>>831
>>832
情報dクス
・・・ここ数日間、GCL,CLisp ( Chicken, Gambit-C )
が吐き出すCコードをVCでコンパイルして.Libを作成しようとしてますた
直接 DLLを出力できるLispコンパイラ使わないと駄目何すね
・・・DLLを出力できるLispコンパイラ、知っていたら教えてくらはい
(上で騒がれてた、ACLってやつなのかな?)
教えて訓でスマソ
836:831
06/01/14 17:48:34
↑
↑ 自分に礼いってた orz
>>832
>>833
ですた
837:デフォルトの名無しさん
06/01/14 17:55:44
>>834
敢えて挑発的に書けば...
Generics: 動的型なら元から不要
リフレクション: 元からある
デリゲート: クロージャの劣化再発明
イベント: クロージャが無いから無理してる
リモーティング: S式送ってevalさせればいいだけじゃん
インテリセンス: 80年代からあると思うけど
もちろん、静的型言語が持つ型安全性の保証とかはLispは弱い。
自分でがりがり書けば出来なくはないけれど。
条件に基づいてコード生成って?
838:デフォルトの名無しさん
06/01/14 18:10:18
LispWorks はできるよ.ACL もできるんじゃねーかな.
ECL もできる.GCL もできそうだけど… GCL 知らないスマン
# しかし CLISP は C コード吐かないだろう.
839:831
06/01/14 18:43:48
>>838
どうもっす
ECLでゆきます
・・CLisp、間違えます田
色んなのためしてたらわからなくなてた
ありがとうございました
840:デフォルトの名無しさん
06/01/14 19:04:59
>>837
C++から入ってC#やってるのでその辺の概念がまったくわからんです。
なんか最近頭がうにになってるし。
オブジェクト指向に頭が固まってる希ガス。
Lispというか関数型の利点がいまいちわかってないのでC++とかだとこんな風にしかできないけどそこをこんなエレガントにできるよって感じで教えてもらえないですか?
条件に基づいてコード生成ってのは、画面の生成とかをXAMLみたいなスクリプトに落として扱ってるんだけれどそれをそのままプログラムコードで生成したりしとか操作に基づいてロジックを生成してそのままプログラム中で扱えたりするといろいろできるかという話。
841:デフォルトの名無しさん
06/01/14 20:25:20
>>840
>操作に基づいてロジックを生成
これって具体的にはどういうイメージで言ってるの?
842:デフォルトの名無しさん
06/01/14 23:07:07
gclでウィンドウを生成してその中で二点を定めて
線を引くというような簡素なプログラムを組みたい
のですがどうすればよいでしょうか?どなたかご存知な
方お願いします。
まずウィンドウを生成するやり方からわかりません。。
843:デフォルトの名無しさん
06/01/14 23:29:43
GCL 使った事無いけど、これじゃないの?
Tcl/Tk は別途インスコする必要あるかもしれないけど。
URLリンク(www.sunsite.ualberta.ca)
844:デフォルトの名無しさん
06/01/15 00:02:22
>>841 行った操作を覚えたりとか、拡張言語として使うとかですかね。
845:デフォルトの名無しさん
06/01/15 00:41:22
>>843
ありがとうございます。
結構使えそうです。
846:デフォルトの名無しさん
06/01/15 02:04:13
>>837
> インテリセンス: 80年代からあると思うけど
あればなんでもいいってわけじゃないだろw
開発環境が(良くも悪くも)重厚長大ですげえんだよMSのは。
847:デフォルトの名無しさん
06/01/15 02:22:14
>>846
世界の狭い奴だな
848:デフォルトの名無しさん
06/01/15 04:14:14
lispのコンソールから打ち込んだ文字(プログラムを走らせる前)
をすべて保存するようにしたいのですが、
打ち込んだ文字列は、なんていう変数やらストリームに保存されてるんですか?
849:デフォルトの名無しさん
06/01/15 04:21:20
つURLリンク(www.franz.com)
850:デフォルトの名無しさん
06/01/15 04:33:06
ありがとうございます。
でも、コマンドラインの変数名も知りたいのです。
わからないでしょうか?
851:デフォルトの名無しさん
06/01/15 08:15:48
あ、そういうことか。失敬。
それは処理系依存だと思う。例えばAllegroならcommand-line-argumentsという
関数で取れる。処理系のマニュアルを読むべし。
852:デフォルトの名無しさん
06/01/15 09:38:00
>>847
しかしあのMSの統合開発環境に太刀打ちできる環境はないな。
853:デフォルトの名無しさん
06/01/15 09:51:57
まーGeneraの頃とはソフトウェアの規模が違うのは認めるが。
854:デフォルトの名無しさん
06/01/15 10:18:37
MSの貧者の統合環境ってどうなんだろうね。
敷居を下げたのが功か無能を引き入れたのが罪か。
855:デフォルトの名無しさん
06/01/15 10:29:10
レベルの低い開発者をふるい落とすのは開発環境の役目ではない
856:350
06/01/15 11:06:09
>>351
kyoto common lispのコマンドラインの変数名を知りたいのですが、
ネットでは見つかりません。
しらないでしょうか?
857:デフォルトの名無しさん
06/01/15 11:07:04
優れたデバッガのおかげで本来動くはずのないプログラムが出たとこ修正で動くようになる。当然、潜在バグてんこ盛り。
論よりRUNとか言っているアフォも居るし。
Lispもそんなもんなのか?
858:デフォルトの名無しさん
06/01/15 11:46:22
>>856
アホがよって来るから、メール欄に sage って入れてくれ。
859:デフォルトの名無しさん
06/01/15 14:30:44
早く common-lisp.net 復旧しないかな...
860:デフォルトの名無しさん
06/01/15 14:37:43
.NETで使えるLispというのはないんでせうか?
ちょっとみたけれどわからず・・・
861:デフォルトの名無しさん
06/01/15 14:43:09
>>860
ある。
862:デフォルトの名無しさん
06/01/16 00:04:23
ソースつきサンプルが標準でどっかのディレクトリに入って滝がした
863:デフォルトの名無しさん
06/01/16 01:34:22
>>860 .NET 向けなら LSharp ってのがあるよ.まぁ,Common Lisp でも Scheme でもないけど.
864:デフォルトの名無しさん
06/01/16 03:23:56
kyoto common lispのコマンドラインの変数名を知りたいのですが、
誰か知りませんか?
865:デフォルトの名無しさん
06/01/16 05:06:02
つうかなんで今更KCL?
GCLならsi:*command-args* みたいな名前の変数だったと思う。
とりあえず、aproposでそれらしい名前を探してみたら?
866:デフォルトの名無しさん
06/01/16 14:29:04
オブジェクト指向が染み付いてるんですが、LISPってどんなイメージでプログラミングするの?
867:デフォルトの名無しさん
06/01/16 16:35:33
クラスを定義してメソッドを書いてゆく。(こともできる)
868:デフォルトの名無しさん
06/01/16 16:38:07
>>867 それオブジェクト指向とどう違うの?
869:デフォルトの名無しさん
06/01/16 16:51:22
違わないだろ
Lispでもオブジェクト指向やれますよって言ってるんだから
870:デフォルトの名無しさん
06/01/16 17:05:27
んじゃ、オブジェクト指向的に書くとして、その場合のJava、C++などとの違いはどこに出るの?
871:デフォルトの名無しさん
06/01/16 17:22:49
>>870
括弧
872:デフォルトの名無しさん
06/01/16 17:35:38
>>871
まあ、依然としてLispである、ってとこかな。
873:デフォルトの名無しさん
06/01/16 18:12:17
>>872 そのLISPであるのはどこ?
874:デフォルトの名無しさん
06/01/16 18:15:40
>>873
括弧
875:デフォルトの名無しさん
06/01/16 18:20:36
単に「JavaやC++と比べてLispはどう違うのか」の答と一緒かと
876:デフォルトの名無しさん
06/01/16 18:27:39
>>875
最初の質問に戻るかも試練が・・・わかんねーよウワァン。
877:デフォルトの名無しさん
06/01/16 18:29:17
On Lisp の最初の方を読むといいかも。
878:デフォルトの名無しさん
06/01/16 18:42:58
>>877
みつけますた。よんでみます。
ただまとめて印刷できるページがほしかった・・・
879:デフォルトの名無しさん
06/01/16 20:41:02
スピード面とか考慮したうえでLispに向くもの向かないものってあるんでしょうか?
880:デフォルトの名無しさん
06/01/16 22:37:05
LSharp以外に.NETでつかえるLispあるならつかいたいんだがどうよ。
881:831
06/01/17 00:03:55
ECLを使って見ますた
Windows上でインストールさせて、
簡単な関数を書いたLispファイルをコンパイルしてみると
おぉ、ECLから.dll .Lib .hファイルを取得できますた
早速C++に組み込んでみようとすると、
..わからん、どうやって引数を渡すんだ?
マニュアルとECLのヘッダーファイルを週末読み込んでみたものの、
わたすの低レベルな頭ではプログラムを走らせることができませんですた
(変換された関数はECL独自の構造体(共有体?)しか受け取ってくれない)
やはりCに書き出すことはできたとしても、
Lisp->Cへの組み込み時において、変換された関数のインターフェースが
問題であることをようやく理解。
そこで今回、Lisp->Cのインターフェースがうまく扱えそうな
LispWorksに方向転換してマニュアルを呼んでます
LispWorksで変換したLispコードをCから呼び出してる人、
使い心地はどうですか?
知ってる人おりましたら、おしえてくらはい。
・・・長文、駄文、あと頭悪くてすいません
882:デフォルトの名無しさん
06/01/17 00:06:55
>>880
何で .NET が良いのか、LSharp の何が気に入らなかったのかを書いたら
教えてやらんでもないけど、マイナーな処理系使っても幸せにはなれないよ。
>>876
個人的には REPL の有る無しが大きい。データを直に触りながら書く感じ。
883:デフォルトの名無しさん
06/01/17 01:11:33
>>831
メール欄に sage って書いてホスィ.ひょっとしてPerl とか Python とかの組
み込みの経験ないってこと?むーC / Lisp ともにちょっとスキル不足かもしれ
ない.
LispWorks の使い心地だけど
(fli:define-foreign-callable ("Double" :result-type :int)
((x :int) (y :int))
(* x y))
で DLL 作ると int Double(int x, int y) { return x*y; } に見える.
884:デフォルトの名無しさん
06/01/17 02:17:35
>>882
.NETの理由:既存資産があるしライブラリあるから
LSharp以外の理由:LSharpは気に入らなかったのではなく比較のため。
885:884
06/01/17 02:20:44
眠いとだめだな日本語おかしい・・・orz
ライブラリ->マイライブラリ
LSharpは->LSharpを
886:デフォルトの名無しさん
06/01/17 02:24:04
>>884,885
ほい。
URLリンク(dotlisp.sourceforge.net)
URLリンク(www-sop.inria.fr)
887:デフォルトの名無しさん
06/01/17 02:46:43
>>884, 885
ほれ.
RDNZL - A .NET layer for Common Lisp
URLリンク(www.weitz.de)
888:デフォルトの名無しさん
06/01/17 02:48:57
>>884,885
あと、この辺かな。
URLリンク(weitz.de)
URLリンク(foil.sourceforge.net)
URLリンク(bc.tech.coop)
URLリンク(bc.tech.coop)
URLリンク(bc.tech.coop)
せっかく答えてくれたのに、参考にならなかったらスマソ。
889:デフォルトの名無しさん
06/01/17 02:50:32
わぉ、こんな夜更けに被ってしまった...
890:デフォルトの名無しさん
06/01/17 03:27:55
>>879
Lisper は環境に合わせて Lisp 処理系を書いてしまうから、向かない物は無いとも言える。
GOOL とか XS Lisp とか LispMe とか Schemix とか。LispM もあったし。
向いてないのは、人月投入してナンボのプロジェクトとかかな。Lisper は希少種だから。
891:デフォルトの名無しさん
06/01/17 10:55:18
正式発表キタ!!
>A port of OpenMCL to X86-64 (AMD64) Linux is underway;
>it's scheduled for release in Q2/2006.
URLリンク(openmcl.clozure.com)
892:デフォルトの名無しさん
06/01/17 10:59:58
>>886-888 さんくすこ。みてみます。
893:831
06/01/18 01:04:30
>>883
情報サンクス
使い勝手、よさそうですね
マニュアルのページ参照できますた
Personal Editionだとファイル出力できないことがたった今判明。
..約11万かぁ 要検討します
おっしゃるとおり、組み込み系、Lisp共に超初心者です、はい。
Lispは本を1時間よんだくらい。まずは環境整備と思い、現在に至ります。
Cはちょいとかじってます。
言語解析やりたくてLIspはじめようかと。
ついでに質問いいですか?教えて訓ですみません。
CまたはC++に組み込む場合、.DLLに加えて.h,.libファイルが必要ですよね?
マニュアルにこれらの出力関数が見当たらなかったんすけど、
きちんと装備されています?、LispWorks。
まちがい、かんちがいあったらすいません。
宜しくお願いします。
sage気おつけます。2ch書き込みも実は831がはじめて。
894:デフォルトの名無しさん
06/01/18 01:44:47
> 言語解析やりたくてLIspはじめようかと。
自然言語解析だとすると LispWorks は日本語対応が UNICODE のみなんで,お
すすめできないなぁ.あんまり日本語処理強くないよ.最終目標はどんなかん
じなの?
> CまたはC++に組み込む場合、.DLLに加えて.h,.libファイルが必要ですよね?
DLL を LoadLibrary して使えます.でも普通は Lisp から C の DLL を呼ぶと
思うけどなー.そっちのほうが資料が充実してるし楽だ.あるいはソケットで
通信とかね.
895:831
06/01/18 21:35:14
>>894
情報サンクス
言語解析はそんなレベル高いものではない(と思う)
というのも認知心理学ちょっとやりたくて買った本が
「Lispで学ぶ認知心理学」ってやつ。
そこにでてくるプログラム参考に勉強していこうかと。
ただ、1980年に出版されたもんだからユニコードうんぬんではないのです。
たとえば "NINCHI" "SHINRIGAKU"とかで、全部ローマ字で処理。
文章とかの階層構造を定義したいなぁ、なんて。
ただここの本にでてくる考え方は学んでみたいとおもい、& 組み込み対象が自作のC++プログラム。
っていうかんじです。
引き続き、組み込み向けのLisp、ソケット通信調べてみます。
長文駄文ソマソ。
896:デフォルトの名無しさん
06/01/19 00:43:18
>>895
URLリンク(clisp.sourceforge.net)
URLリンク(clisp.sourceforge.net)
URLリンク(common-lisp.net)
897:831
06/01/19 01:00:17
>>896
・゚・(ノд`)・゚・ なんでそんなにやさしいんですか?
有難う御座います。
がんばります。
...職場の人だってここまでやさしくない
898:デフォルトの名無しさん
06/01/19 05:00:56
>>895 あれってMACLISPじゃなかったっけか?
899:831
06/01/20 00:25:21
>>898
ども。
本には「APPLE LISP」を基準にしているとの記述が。
中まだ呼んでないからわからないけど
defun を DE で記述ますね。
今日は帰りが遅かったからほとんど手付かず。
週末はLisperになりたい。
900:デフォルトの名無しさん
06/01/20 01:44:44
まーがんがれ。言語仕様はずいぶんかわってるので,アルゴリズムに集中して
勉強したほうがいいね。まぁ,おれはその本読んだ事ないのでアレだけど,お勧めは
- C をある程度知っているなら ANSI Common Lisp あたりを読んでみる
- 難しいと感じたなら,古い本だけど培風館の Lisp (1) (2) に挑戦
こっちは学生に訳させたのか日本語が破綻しているが,内容的には
入門から簡単な Garbage Collection の仕組みまでと充実してる.
- 英語が苦にならないなら Practical Common Lisp とか Norvig の PAIP,OnLisp とか
アカデミックな風味が好きなら Programming Scheme, HTDP, SICP にも挑戦してもいい
自然言語ネタならPAIP にもちょっとあるよ.PAIP の一番最初の例はルールベー
スのランダム文章作成だよん.
(defparameter *simple-grammar*
'((sentence -> (noun-phrase verb-phrase))
(noun-phrase -> (Article Noun))
(verb-phrase -> (Verb noun-phrase))
(Article -> the a)
(Noun -> man ball woman table)
(Verb -> hit took saw liked)))
(defvar *grammar* *simple-grammar*)
(defun rule-lhs (rule) (first rule))
(defun rule-rhs (rule) (rest (rest rule)))
(defun rewrites (category) (rule-rhs (assoc category *grammar*)))
(defun generate (phrase)
(cond ((listp phrase) (mappend #'generate phrase))
((rewrites phrase) (generate (random-elt (rewrites phrase))))
(t (list phrase))))
901:デフォルトの名無しさん
06/01/20 21:09:46
kyoto common lispのコマンドラインの変数名を知りたいのですが、
誰か知りませんか?
902:デフォルトの名無しさん
06/01/20 21:21:08
変な宿題出してるがっこがあるようだな。
スレリンク(tech板:349番)
903:デフォルトの名無しさん
06/01/21 00:10:07
いまどき KCL ???ネタか?しかも本スレとマルチ?
メール欄に sage もしくは学生番号を書いたら考えるけど……
904:デフォルトの名無しさん
06/01/21 00:42:29
>>856 >>864 も
アフォは無視すれ
905:831
06/01/21 01:13:44
>>900
応援サンクス.参考書チェックしてみす。
今度町にでたら立ち読みしなければ。
...ランダム文章作成 ひじょーに博学ですね。
わたすの頭からあれがでてくるよう念じたら いつかでてくるのかな
週末だけのうみそ交換しませんか?
...毎度すいません、教えてくんになってよいですか。
教えて頂いたURL、目を通して見ます田。2つ質問あります。
1つ目:Example31.7 Calling Lisp from C dynamicallyの考え方、
これであってます?↓
------Lispソース(FFI含む)----
| |
|(インターフェース部を書いた|
| Cソースを |
| コンパイルしたdll) |----------------> (Lispソースを
| | ↑ コンパイルしたDLL)
| | CLisp
|---------------------------| でコンパイル ↑C/C++に組み込み可
2つ目:もう一つ御願いします。
ClispではFFIを使用するためには特別な操作が必要なんすか?
上記考え方に基づいて
Example31.7のCソース部分からDLLを作成。
その後Lispソース部で作成(.dllの名前はきちんと入力)。
できたhoge.lispファイルを(load "hoge.lisp" )すると
CLispが「skip (DEF-CALL-OUT CALLOUT # ...」っていってとまっちゃいます田。
アドバイス頂けませんか?宜しくおねがいします。
906:831
06/01/21 01:20:28
orz 絵がずれちゃいました。
訂正
-----Lispソース(FFI含む)--------------
| インターフェース部を書いたCソースを|------------------------->C/C++で組み込み可能なDLL
| コンパイルしたdll__________________| Clispでコンパイル
--------------------------------------
またずれたら逝きます
907:831
06/01/21 01:33:09
スレよごしすいません
再訂正
1. インターフェース部を書いたCソースをCコンパイラ(VC++)でDLLを作成
2. VCからでできたDLLをLispソースに組み込んで、CLisp(FFIパッケージ使用)でコンパイル。
3. CLispからでてきたDLLをC/C++に組み込む
...すいませんでした。
908:デフォルトの名無しさん
06/01/21 01:40:25
残念.CLISP の FFI ってのは CLISP から Dynamic Library (DLL とか) を扱
うための仕組みのこと.
CALL-OUT: CLISP から DLL の関数を呼び出す
+-------+ -----> +-----+
| CLISP | | DLL |
+-------+ <----- +-----+
CALL-IN: DLL 内から CLISP の関数を呼び出す
なので,C/C++ に組み込み可能な DLL は CLISP では作れない.ずいぶん
C/C++ にこだわりを持ているようだけれど,ゲームでも作ってそっから Lisp
の機能を呼びたいのかな?
909:デフォルトの名無しさん
06/01/21 01:46:17
CLISP は DLL を出力できません.ので,C のアプリから CLISP で作った機能を呼び出すには
1. ソケットを使う
2. パイプを使う
3. 共有メモリを使う (CLISP に拡張がいるかな?)
のいずれかの手段が必要です.
910:831
06/01/21 02:01:40
>>908
解説、ありがとうございます。
自分、英語苦手なのばれちゃいましたね。
学生のときC/C++で記憶のモデルをつくってますた
へたれな出来だったけど。
へたれソフトには一応それなりに考えて実装しますた。
それはそのままにして、新しい機能をLispで加えられたらと。
当時の研究、あまりいい結果でなかったけど
おもしろかたんで社会にでても時間みつけてつづけてるって感じです。
...素直にLispWorks購入しようかな
911:831
06/01/21 02:08:25
おお、
すいません、すれちがっちゃいました。
まずはアドバイスのとおり1,2,3について調べてみます
情報ありがとうございます。
ホント、世話になってます
912:デフォルトの名無しさん
06/01/21 11:06:07
WindowsならCorman Common Lispって手もある。IDE使わなきゃ無料だし、
ソースコードもついてたハズなんで見てみれば?
トライアル版とはいえAllegro Common Lispに手を出してしまうとアホらしくて
他の処理系を使う気が失せるが個人で購入するには高すぎて手が出せない罠。
913:デフォルトの名無しさん
06/01/21 12:30:40
Cormanって日本語使えるようになったの? 以前試したときはダメだったけど。
914:デフォルトの名無しさん
06/01/21 13:28:16
>>912
そんなに高くは無いだろ。
915:デフォルトの名無しさん
06/01/21 22:49:24
Allegro, UNIX でもマルチスレッドに対応にしてくれると
多少高くても買うんだけどなあ…
916:デフォルトの名無しさん
06/01/21 23:07:47
>>914
え?いくらなの? 50 万くらいかと思ってたけど
しかもそれでランタイムライセンスなしみたいな…
俺騙されてた?
917:デフォルトの名無しさん
06/01/21 23:21:37
一番安いのだと十数万じゃなかったっけ。
918:デフォルトの名無しさん
06/01/21 23:46:29
本には
(setf x '(a b c))
(setf (nthcdr 2 x) '(1 2))
とすると、xが(a b 1 2)となると書いてあるんですが、
エラーになります。処理系によって違いがあるんですか?
自分が試したのがclispとAllegro CL (共にWindows)で、
本が想定してるのがMac Common Lispです。
919:デフォルトの名無しさん
06/01/22 00:05:42
URLリンク(www.lispworks.com)
The consequences are undefined if literal objects (including
self-evaluating objects) are destructively modified.
本の名前晒せ
920:デフォルトの名無しさん
06/01/22 00:14:11
Mac Common Lispの動作としてそうなるという説明であれば正しい
記述なのかもしれない。>>919の言うように現在のCommon Lispの
仕様としては「不定」が正解。
ただし、動作が不定であるということが明確化されたのはCLtL2から
だからそれ以前の本ならそういう記述があっても止むを得ない。
921:デフォルトの名無しさん
06/01/22 00:21:24
>>919
本はこれです。
プログラミング言語Lisp入門からマルチメディアまで ASCII SOFTWARE
URLリンク(www.amazon.co.jp)
今初めてアマゾンでレビュー見たんですが、
どうやらMacに依存した内容が多いようですね。
上のコードはMacじゃないと動かないという事なんですね。
922:デフォルトの名無しさん
06/01/22 00:30:39
エラーの原因はリテラルオブジェクトの書き換えではなく、(setf nthcdr)の未定義
じゃないかな。手元のclispだと、
(setf x '(a b c))
(setf (cdr x) '(1 2))
ならちゃんと通って、x = (A 1 2) になる。元のプログラムだと(setf nthcdr)の未定義
でエラーになる。
923:デフォルトの名無しさん
06/01/22 00:44:13
OpenMCL では問題無し。SBCL では (setf nthcdr) の未定義でエラー。
% ./dppccl
Welcome to OpenMCL Version 1.0 (DarwinPPC32)!
? (setf x '(a b c))
(A B C)
? (setf (nthcdr 2 x) '(1 2))
(1 2)
? x
(A B 1 2)
MCL 系に依存したコードみたいね。>>921 の本は ANSI CL という
よりは MCL の使い方を書いた本なんで問題無すぃ。
924:デフォルトの名無しさん
06/01/22 01:20:08
>>915
Windows以外はまだOSスレッドに対応してないんだっけ。8.0でも変わらないのかな。
925:デフォルトの名無しさん
06/01/22 02:01:16
>>831
VB だが。
URLリンク(www.cs.stevens.edu)
926:918
06/01/22 09:23:08
皆さんありがとうございます。
ANSI標準のCommon Lispを勉強したかったんで、別の本を探して見ます。
Common Lispならどの処理系でも同じなのかと思ってました。
927:デフォルトの名無しさん
06/01/22 10:50:15
>>916
前は10万円以下のがHPでセールスしてたが今はアカデミック向けのが99ドルで載ってるな。
928:デフォルトの名無しさん
06/01/22 11:53:28
>>918
> ANSI標準のCommon Lispを勉強したかったんで、別の本を探して見ます。
仕様には規定されている事とされていない事がある。specified と unspecified ね。
さらに実装依存(implementation-defined)と定義されている事もある:
(例) (disassemble) での表示形式とか
declare で最適化するとかしないとか
は規格で「実装による」と規定されている。だから本 + HyperSpec をつきあわ
せながら勉強してけばいいんじゃね。ANSI Common Lisp (Paul Graham) あたりは
入門にはちょっと難しいと思われ。英語でもがんがる気合いがあるなら
Practiclal Common Lisp がオススメ
>>927
もう卒業したんでアカデミックダメポ…。学生時代はアカデミックが安ければ
いと思っていたけどな。アカデミックが安いだけではダメな事に気がついた。
予算は Win なら MSDN にもってかれちゃうしな。
929:デフォルトの名無しさん
06/01/22 12:00:57
>>924
してない.
7 -> 8 の差分ってすごく小さい
930:デフォルトの名無しさん
06/01/22 13:19:36
>>895
> >>894
> 情報サンクス
> 言語解析はそんなレベル高いものではない(と思う)
> というのも認知心理学ちょっとやりたくて買った本が
> 「Lispで学ぶ認知心理学」ってやつ。
おおおっ、もしやサンプルがAPPLE LISP でプログラムされているやつでは!
931:デフォルトの名無しさん
06/01/22 13:28:49
APPLE LISP は8bitマシンであるAPPLE ][ 用に慶応大の大西先生が
実装した処理系ですね。 6502のマシン語で書いたそうです。
メモリの一部がグラフィックメモリと共用なのでガベージコレクションして
いるのが”見えた”ので教育用としても有用だった。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5385日前に更新/244 KB
担当:undef