- 1 名前:デフォルトの名無しさん mailto:sage [04/11/25 21:48:56]
- lispを触ってみたい入門者のQ&A
初心者のQ&A 本スレでは恥ずかしくて聞けない人のQ&A 本スレは高度すぎて割り込めない人のQ&A linuxでなくてwindowsでやりたいんですが・・・Q&A lispを使用してC#やJAVAの代替にするための方法(おまけ) ま、ゆっくりたりましょう。 「いいものの本質は、いかなる時代においても変わらない」byパワーズ
- 809 名前:デフォルトの名無しさん mailto:sage [2005/12/27(火) 01:47:02 ]
- car => これ
cdr => それ cdadar => そこそこれ
- 810 名前:デフォルトの名無しさん mailto:sage [2005/12/27(火) 01:55:43 ]
- car/cdr は箱(コンスセル)から要素を取り出す操作だから、
car: とりだす cdr: つぎをとりだす cdadar: つぎのまえのつぎのまえをとりだす 関数は動詞且つ和語で統一したい所だけど、苦しいかな...
- 811 名前:デフォルトの名無しさん mailto:sage [2005/12/27(火) 02:26:21 ]
- >>809
それイイネ
- 812 名前:デフォルトの名無しさん mailto:sage [2005/12/27(火) 10:26:20 ]
- >>809
anaphoric ifのitはどうすんだ
- 813 名前:デフォルトの名無しさん mailto:sage [2005/12/27(火) 11:57:15 ]
- >>812
「あれ」
- 814 名前:デフォルトの名無しさん mailto:sage [2005/12/30(金) 19:42:32 ]
- clozure.com/cgi-bin/viewcvs.cgi/ccl/ChangeLog?rev=HEAD&cvsroot=Bleeding-edge&content-type=text/vnd.viewcvs-markup
x86 の文字がちらほら見えるけど、OpenMCL も x86 に移植されるみたいだね。 素晴らしい。
- 815 名前:デフォルトの名無しさん [2006/01/09(月) 22:24:16 ]
- lispで作った関数なんかは、何処に保存されてるのでしょうか?
lispのコードをいじる課題が出たのですが、 コードの保存を自分でやらなきゃならなくなって困ってます。
- 816 名前:デフォルトの名無しさん mailto:sage [2006/01/09(月) 22:52:09 ]
- 教官に聞け
- 817 名前:デフォルトの名無しさん [2006/01/09(月) 22:59:50 ]
- それを見つけるのが課題。。
- 818 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 10:08:05 ]
- 「エディタで新規にファイル作ってその中に書け」が答のような気もする
っていうかLisp関係ないな 対話的にしかLispを使わない授業だったと推測するが
- 819 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 14:24:33 ]
- >>815
それ、Smalltalk使いの私も訊きたいです。 Smalltalkでは、関数(メソッド)が自身のソースを属性として持っていて比較的 容易にたぐれるんですが、Lispでは環境内でのソース管理はどうなっているんでしょうか? 818の行間を読むと、対話的に作られた場合、関数は自身にかかわるソース情報を (デコンパイルなどで特殊な方法で別途得る以外)他の一般的な言語と同様、 いっさい失ってしまうのが当り前…というような印象を受けるのですが。
- 820 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 22:47:35 ]
- >>819
ANSI CL の範囲では無いと思う。ANSI Smalltalk もソースコードの管理までは 規定してないでしょ?
- 821 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 23:15:09 ]
- function-lambda-expression()
lambda 式が取れなくても規格合致だけど
- 822 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 06:36:04 ]
- >>819
「関数」はソース+定義環境だから、ソースだけ取れてもそれを保存 するみたいなことには向かないだろうね。デバッグの助けにするだけなら いいだろうけれど。 (let ((n 0)) (defun incr (k) (incf n k))) なんてした時に、incrのソースはどこからどこまで? ってことね。
- 823 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 16:34:30 ]
- なるほど。Smalltalkのブロック(クロージャ)のソースは、メソッド(関数)のそれと
違って容易にはたぐれない…のと状況は似ていそうですね。ありがとうございます。
- 824 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 17:02:36 ]
- www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html
これ読んでLisp使いたくなりました。 入門サイト教えろこの野郎m(__)m
- 825 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 18:29:40 ]
- >>824
ぐぐれこの野郎(^^)
- 826 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 18:41:45 ]
- >>824
www.geocities.jp/m_hiroi/xyzzy_lisp.html xyzzy向けの内容が入ってるけど
- 827 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 20:37:58 ]
- >>824
ttp://www.h7.dion.ne.jp/~matsu/feature/common-lisp/index.html 日本語のサイトではここが一番良かった。
- 828 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 19:50:45 ]
- すまんがLispで生産性があがるってのはどのへんのせいなのでしょうか?
>>824 の本を読んで興味持ったんだけれどよくわからんです。 コンパイル->実行とかの過程も処理対象にできるっていうのはやりようで面白いことできそうかと思ったんですが。 いまはC#つかいなのですが、.NETでのReflection,CodeDOMあたりの機能でしょうか。
- 829 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 20:10:48 ]
- いろんな要素が絡んでるから難しいけど。
最近機能が増えた言語や開発環境(なんでもいい)で、これが入って 生産性が上がったなーってもんをリストアップしてみ。 そのリストはLispの生産性の高さの理由のリストとかなり重なると思うよ。
- 830 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 01:43:00 ]
- 使用者への効果でいうと「マルチパラダイム」が一番大きいと思う.型がない.
手続き型でも関数型でも論理型でも並列型でもオブジェクト指向型でも,それ に合わせられる.クラスによる分類が向かない分野では,迷う事なくそれ以外 の手法をとれるしね. マクロによるプログラム変形とかはそういった言語カスタマイズのための道具 で,本当はこの「どんなパラダイムでもどんとこい」というのが最大のメリッ トだと思う.個人的にはね.
- 831 名前:デフォルトの名無しさん [2006/01/14(土) 04:40:52 ]
- あのー
おばかで申し訳ないですが、 自分、VC++でコンソールアプリ作っております。 一部のc++の関数をLispで置き換えたいと思っておるのですが、 これって可能なんでしょうか? おしえてえらいしと
- 832 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 13:24:37 ]
- >>831
だいたいできると思うけど、GC関係でいろいろややこしいところは覚悟しないといけない。
- 833 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 14:01:57 ]
- 可能だけど,ある程度 C++ と Lisp の知識がいるよ.
1) DLL を出力できる Lisp コンパイラをもっている (普通の DLL と同じ) 2) ecl を組み込む 3) プロセス間通信する 3. がいちばん簡単かなー
- 834 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 17:27:18 ]
- >>829
C++からC#にかわったんだけど ・Generics(これはC#1.0になかったものとして) テンプレートでないのがちょっと不満。 ・リフレクション ・デリゲート 呼び出しをオブジェクト化することでいろいろ使える。 ・イベント デリゲートの呼び出し管理の簡略化 ・リモーティング プロセス間呼び出しを楽にした感じ ・インテリセンス(これは開発環境) これあってすごい楽になった。ヘルプとか引く回数激減。 条件に基づいてコード生成、それの管理とかできるともっといろいろ面白いことできるのかなぁとおもうけど。
- 835 名前:831 [2006/01/14(土) 17:46:11 ]
- >>831
>>832 情報dクス ・・・ここ数日間、GCL,CLisp ( Chicken, Gambit-C ) が吐き出すCコードをVCでコンパイルして.Libを作成しようとしてますた 直接 DLLを出力できるLispコンパイラ使わないと駄目何すね ・・・DLLを出力できるLispコンパイラ、知っていたら教えてくらはい (上で騒がれてた、ACLってやつなのかな?) 教えて訓でスマソ
- 836 名前:831 [2006/01/14(土) 17:48:34 ]
- ↑
↑ 自分に礼いってた orz >>832 >>833 ですた
- 837 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 17:55:44 ]
- >>834
敢えて挑発的に書けば... Generics: 動的型なら元から不要 リフレクション: 元からある デリゲート: クロージャの劣化再発明 イベント: クロージャが無いから無理してる リモーティング: S式送ってevalさせればいいだけじゃん インテリセンス: 80年代からあると思うけど もちろん、静的型言語が持つ型安全性の保証とかはLispは弱い。 自分でがりがり書けば出来なくはないけれど。 条件に基づいてコード生成って?
- 838 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 18:10:18 ]
- LispWorks はできるよ.ACL もできるんじゃねーかな.
ECL もできる.GCL もできそうだけど… GCL 知らないスマン # しかし CLISP は C コード吐かないだろう.
- 839 名前:831 [2006/01/14(土) 18:43:48 ]
- >>838
どうもっす ECLでゆきます ・・CLisp、間違えます田 色んなのためしてたらわからなくなてた ありがとうございました
- 840 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 19:04:59 ]
- >>837
C++から入ってC#やってるのでその辺の概念がまったくわからんです。 なんか最近頭がうにになってるし。 オブジェクト指向に頭が固まってる希ガス。 Lispというか関数型の利点がいまいちわかってないのでC++とかだとこんな風にしかできないけどそこをこんなエレガントにできるよって感じで教えてもらえないですか? 条件に基づいてコード生成ってのは、画面の生成とかをXAMLみたいなスクリプトに落として扱ってるんだけれどそれをそのままプログラムコードで生成したりしとか操作に基づいてロジックを生成してそのままプログラム中で扱えたりするといろいろできるかという話。
- 841 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 20:25:20 ]
- >>840
>操作に基づいてロジックを生成 これって具体的にはどういうイメージで言ってるの?
- 842 名前:デフォルトの名無しさん [2006/01/14(土) 23:07:07 ]
-
gclでウィンドウを生成してその中で二点を定めて 線を引くというような簡素なプログラムを組みたい のですがどうすればよいでしょうか?どなたかご存知な 方お願いします。 まずウィンドウを生成するやり方からわかりません。。
- 843 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 23:29:43 ]
- GCL 使った事無いけど、これじゃないの?
Tcl/Tk は別途インスコする必要あるかもしれないけど。 www.sunsite.ualberta.ca/Documentation/Gnu/gcl-2.3.6/html_mono/gcl-tk.html#SEC55
- 844 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 00:02:22 ]
- >>841 行った操作を覚えたりとか、拡張言語として使うとかですかね。
- 845 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 00:41:22 ]
- >>843
ありがとうございます。 結構使えそうです。
- 846 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 02:04:13 ]
- >>837
> インテリセンス: 80年代からあると思うけど あればなんでもいいってわけじゃないだろw 開発環境が(良くも悪くも)重厚長大ですげえんだよMSのは。
- 847 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 02:22:14 ]
- >>846
世界の狭い奴だな
- 848 名前:デフォルトの名無しさん [2006/01/15(日) 04:14:14 ]
- lispのコンソールから打ち込んだ文字(プログラムを走らせる前)
をすべて保存するようにしたいのですが、 打ち込んだ文字列は、なんていう変数やらストリームに保存されてるんですか?
- 849 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 04:21:20 ]
- つwww.franz.com/support/documentation/7.0/ansicl/dictentr/dribble.htm
- 850 名前:デフォルトの名無しさん [2006/01/15(日) 04:33:06 ]
- ありがとうございます。
でも、コマンドラインの変数名も知りたいのです。 わからないでしょうか?
- 851 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 08:15:48 ]
- あ、そういうことか。失敬。
それは処理系依存だと思う。例えばAllegroならcommand-line-argumentsという 関数で取れる。処理系のマニュアルを読むべし。
- 852 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 09:38:00 ]
- >>847
しかしあのMSの統合開発環境に太刀打ちできる環境はないな。
- 853 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 09:51:57 ]
- まーGeneraの頃とはソフトウェアの規模が違うのは認めるが。
- 854 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 10:18:37 ]
- MSの貧者の統合環境ってどうなんだろうね。
敷居を下げたのが功か無能を引き入れたのが罪か。
- 855 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 10:29:10 ]
- レベルの低い開発者をふるい落とすのは開発環境の役目ではない
- 856 名前:350 [2006/01/15(日) 11:06:09 ]
- >>351
kyoto common lispのコマンドラインの変数名を知りたいのですが、 ネットでは見つかりません。 しらないでしょうか?
- 857 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 11:07:04 ]
- 優れたデバッガのおかげで本来動くはずのないプログラムが出たとこ修正で動くようになる。当然、潜在バグてんこ盛り。
論よりRUNとか言っているアフォも居るし。 Lispもそんなもんなのか?
- 858 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 11:46:22 ]
- >>856
アホがよって来るから、メール欄に sage って入れてくれ。
- 859 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 14:30:44 ]
- 早く common-lisp.net 復旧しないかな...
- 860 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 14:37:43 ]
- .NETで使えるLispというのはないんでせうか?
ちょっとみたけれどわからず・・・
- 861 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 14:43:09 ]
- >>860
ある。
- 862 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 00:04:23 ]
- ソースつきサンプルが標準でどっかのディレクトリに入って滝がした
- 863 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 01:34:22 ]
- >>860 .NET 向けなら LSharp ってのがあるよ.まぁ,Common Lisp でも Scheme でもないけど.
- 864 名前:デフォルトの名無しさん [2006/01/16(月) 03:23:56 ]
- kyoto common lispのコマンドラインの変数名を知りたいのですが、
誰か知りませんか?
- 865 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 05:06:02 ]
- つうかなんで今更KCL?
GCLならsi:*command-args* みたいな名前の変数だったと思う。 とりあえず、aproposでそれらしい名前を探してみたら?
- 866 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 14:29:04 ]
- オブジェクト指向が染み付いてるんですが、LISPってどんなイメージでプログラミングするの?
- 867 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 16:35:33 ]
- クラスを定義してメソッドを書いてゆく。(こともできる)
- 868 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 16:38:07 ]
- >>867 それオブジェクト指向とどう違うの?
- 869 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 16:51:22 ]
- 違わないだろ
Lispでもオブジェクト指向やれますよって言ってるんだから
- 870 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 17:05:27 ]
- んじゃ、オブジェクト指向的に書くとして、その場合のJava、C++などとの違いはどこに出るの?
- 871 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 17:22:49 ]
- >>870
括弧
- 872 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 17:35:38 ]
- >>871
まあ、依然としてLispである、ってとこかな。
- 873 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 18:12:17 ]
- >>872 そのLISPであるのはどこ?
- 874 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 18:15:40 ]
- >>873
括弧
- 875 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 18:20:36 ]
- 単に「JavaやC++と比べてLispはどう違うのか」の答と一緒かと
- 876 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 18:27:39 ]
- >>875
最初の質問に戻るかも試練が・・・わかんねーよウワァン。
- 877 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 18:29:17 ]
- On Lisp の最初の方を読むといいかも。
- 878 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 18:42:58 ]
- >>877
みつけますた。よんでみます。 ただまとめて印刷できるページがほしかった・・・
- 879 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 20:41:02 ]
- スピード面とか考慮したうえでLispに向くもの向かないものってあるんでしょうか?
- 880 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 22:37:05 ]
- LSharp以外に.NETでつかえるLispあるならつかいたいんだがどうよ。
- 881 名前:831 [2006/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 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 00:06:55 ]
- >>880
何で .NET が良いのか、LSharp の何が気に入らなかったのかを書いたら 教えてやらんでもないけど、マイナーな処理系使っても幸せにはなれないよ。 >>876 個人的には REPL の有る無しが大きい。データを直に触りながら書く感じ。
- 883 名前:デフォルトの名無しさん mailto:sage [2006/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 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 02:17:35 ]
- >>882
.NETの理由:既存資産があるしライブラリあるから LSharp以外の理由:LSharpは気に入らなかったのではなく比較のため。
- 885 名前:884 mailto:sage [2006/01/17(火) 02:20:44 ]
- 眠いとだめだな日本語おかしい・・・orz
ライブラリ->マイライブラリ LSharpは->LSharpを
- 886 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 02:24:04 ]
- >>884,885
ほい。 dotlisp.sourceforge.net/dotlisp.htm www-sop.inria.fr/mimosa/fp/Bigloo/
- 887 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 02:46:43 ]
- >>884, 885
ほれ. RDNZL - A .NET layer for Common Lisp www.weitz.de/rdnzl/
- 888 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 02:48:57 ]
- >>884,885
あと、この辺かな。 weitz.de/rdnzl/ foil.sourceforge.net/ bc.tech.coop/blog/040927.html bc.tech.coop/blog/041210.html bc.tech.coop/blog/041216.html せっかく答えてくれたのに、参考にならなかったらスマソ。
- 889 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 02:50:32 ]
- わぉ、こんな夜更けに被ってしまった...
- 890 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 03:27:55 ]
- >>879
Lisper は環境に合わせて Lisp 処理系を書いてしまうから、向かない物は無いとも言える。 GOOL とか XS Lisp とか LispMe とか Schemix とか。LispM もあったし。 向いてないのは、人月投入してナンボのプロジェクトとかかな。Lisper は希少種だから。
- 891 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 10:55:18 ]
- 正式発表キタ!!
>A port of OpenMCL to X86-64 (AMD64) Linux is underway; >it's scheduled for release in Q2/2006. openmcl.clozure.com/index.html
- 892 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 10:59:58 ]
- >>886-888 さんくすこ。みてみます。
- 893 名前:831 mailto:sage [2006/01/18(水) 01:04:30 ]
- >>883
情報サンクス 使い勝手、よさそうですね マニュアルのページ参照できますた Personal Editionだとファイル出力できないことがたった今判明。 ..約11万かぁ 要検討します おっしゃるとおり、組み込み系、Lisp共に超初心者です、はい。 Lispは本を1時間よんだくらい。まずは環境整備と思い、現在に至ります。 Cはちょいとかじってます。 言語解析やりたくてLIspはじめようかと。 ついでに質問いいですか?教えて訓ですみません。 CまたはC++に組み込む場合、.DLLに加えて.h,.libファイルが必要ですよね? マニュアルにこれらの出力関数が見当たらなかったんすけど、 きちんと装備されています?、LispWorks。 まちがい、かんちがいあったらすいません。 宜しくお願いします。 sage気おつけます。2ch書き込みも実は831がはじめて。
- 894 名前:デフォルトの名無しさん mailto:sage [2006/01/18(水) 01:44:47 ]
- > 言語解析やりたくてLIspはじめようかと。
自然言語解析だとすると LispWorks は日本語対応が UNICODE のみなんで,お すすめできないなぁ.あんまり日本語処理強くないよ.最終目標はどんなかん じなの? > CまたはC++に組み込む場合、.DLLに加えて.h,.libファイルが必要ですよね? DLL を LoadLibrary して使えます.でも普通は Lisp から C の DLL を呼ぶと 思うけどなー.そっちのほうが資料が充実してるし楽だ.あるいはソケットで 通信とかね.
- 895 名前:831 mailto:sage [2006/01/18(水) 21:35:14 ]
- >>894
情報サンクス 言語解析はそんなレベル高いものではない(と思う) というのも認知心理学ちょっとやりたくて買った本が 「Lispで学ぶ認知心理学」ってやつ。 そこにでてくるプログラム参考に勉強していこうかと。 ただ、1980年に出版されたもんだからユニコードうんぬんではないのです。 たとえば "NINCHI" "SHINRIGAKU"とかで、全部ローマ字で処理。 文章とかの階層構造を定義したいなぁ、なんて。 ただここの本にでてくる考え方は学んでみたいとおもい、& 組み込み対象が自作のC++プログラム。 っていうかんじです。 引き続き、組み込み向けのLisp、ソケット通信調べてみます。 長文駄文ソマソ。
- 896 名前:デフォルトの名無しさん mailto:sage [2006/01/19(木) 00:43:18 ]
- >>895
clisp.sourceforge.net/impnotes.html#ex-call-in clisp.sourceforge.net/impnotes.html#ex-call-in-dll common-lisp.net/project/cffi/manual/cffi-manual.html#Tutorial_002dCallbacks
- 897 名前:831 mailto:sage [2006/01/19(木) 01:00:17 ]
- >>896
・゚・(ノд`)・゚・ なんでそんなにやさしいんですか? 有難う御座います。 がんばります。 ...職場の人だってここまでやさしくない
- 898 名前:デフォルトの名無しさん mailto:sage [2006/01/19(木) 05:00:56 ]
- >>895 あれってMACLISPじゃなかったっけか?
- 899 名前:831 mailto:sage [2006/01/20(金) 00:25:21 ]
- >>898
ども。 本には「APPLE LISP」を基準にしているとの記述が。 中まだ呼んでないからわからないけど defun を DE で記述ますね。 今日は帰りが遅かったからほとんど手付かず。 週末はLisperになりたい。
- 900 名前:デフォルトの名無しさん mailto:sage [2006/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 名前:デフォルトの名無しさん [2006/01/20(金) 21:09:46 ]
- kyoto common lispのコマンドラインの変数名を知りたいのですが、
誰か知りませんか?
- 902 名前:デフォルトの名無しさん mailto:sage [2006/01/20(金) 21:21:08 ]
- 変な宿題出してるがっこがあるようだな。
pc8.2ch.net/test/read.cgi/tech/1132275726/349
- 903 名前:デフォルトの名無しさん mailto:sage [2006/01/21(土) 00:10:07 ]
- いまどき KCL ???ネタか?しかも本スレとマルチ?
メール欄に sage もしくは学生番号を書いたら考えるけど……
- 904 名前:デフォルトの名無しさん mailto:sage [2006/01/21(土) 00:42:29 ]
- >>856 >>864 も
アフォは無視すれ
- 905 名前:831 mailto:sage [2006/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 mailto:sage [2006/01/21(土) 01:20:28 ]
- orz 絵がずれちゃいました。
訂正 -----Lispソース(FFI含む)-------------- | インターフェース部を書いたCソースを|------------------------->C/C++で組み込み可能なDLL | コンパイルしたdll__________________| Clispでコンパイル -------------------------------------- またずれたら逝きます
- 907 名前:831 mailto:sage [2006/01/21(土) 01:33:09 ]
- スレよごしすいません
再訂正 1. インターフェース部を書いたCソースをCコンパイラ(VC++)でDLLを作成 2. VCからでできたDLLをLispソースに組み込んで、CLisp(FFIパッケージ使用)でコンパイル。 3. CLispからでてきたDLLをC/C++に組み込む ...すいませんでした。
- 908 名前:デフォルトの名無しさん mailto:sage [2006/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 名前:デフォルトの名無しさん mailto:sage [2006/01/21(土) 01:46:17 ]
- CLISP は DLL を出力できません.ので,C のアプリから CLISP で作った機能を呼び出すには
1. ソケットを使う 2. パイプを使う 3. 共有メモリを使う (CLISP に拡張がいるかな?) のいずれかの手段が必要です.
|

|