【入門】CommonLisp【質問よろず】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG初心者のQ&A
本スレでは恥ずかしくて聞けない人のQ&A
本スレは高度すぎて割り込めない人のQ&A
linuxでなくてwindowsでやりたいんですが・・・Q&A
lispを使用してC#やJAVAの代替にするための方法(おまけ)
ま、ゆっくりたりましょう。
「いいものの本質は、いかなる時代においても変わらない」byパワーズ
0002デフォルトの名無しさん
NGNG生まれて初めて
0004デフォルトの名無しさん
NGNG| / ̄ ̄ ̄ヽ
| | / \|
| | ´ ` |
(6 つ /
| / /⌒⌒ヽ
| \  ̄ ノ
| / ̄
0005デフォルトの名無しさん
NGNG↓これ以降はLisp総合馴れ合いスレってことでよろ。
0006デフォルトの名無しさん
NGNGCommon Lispの質問したいのにSchemeで回答がやってくるというのは
ある意味S/N比が悪いとも言えるのでこれはこれでいいだろ。
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNGlispでGUIも加えろ
0012デフォルトの名無しさん
NGNGLispでcgiも(ry
0013デフォルトの名無しさん
NGNGLisp で Win32 も。
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG>1
DBも加えて。
0018デフォルトの名無しさん
NGNG>>11 GUI
>>12 cgi
>>13 Win32
>>17 DB
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNGなんでLispはメインの開発言語にならないんだ?
やっぱEclipseのようにコレ!!っていう環境がないから?
それとも方言が多いから?
速度に関しては問題なくて、それなりに開発効率がいいなら
Lispが選択されてもいいと思うのだがな〜
>18
Lispって使えそうで、使えないんだな。
0021デフォルトの名無しさん
NGNGみんなにあわせる必要もない。
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG実装が1つじゃないから標準化もほぼ絶望的だし。
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNGしかも、ライブラリが増えても作業にあまり関係ないし、期待もしていない。
0026デフォルトの名無しさん
NGNGえ、ライブラリ全部自作してるんですか?効率悪くない?
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGつーか>>17の意図するDBはLISP内で完結するDBなのか、
OracleやMySQLとかと通信する手段なのかわかんねけど。
LISP内で完結するやつ欲しい。
0029デフォルトの名無しさん
NGNGなっても全く嬉しくないけどな。
0030デフォルトの名無しさん
NGNGAlegroStoreとか?
0031デフォルトの名無しさん
NGNGLispを使って数値計算したりゲームつくったり、というような使い方をしていない
ということ。
0032デフォルトの名無しさん
NGNGGUIとかネットワークとかwebとかないのか?
そもそもなんでこういった商業開発に必須な仕様がないんだ?
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNGJAVAていどのライブラリを揃えてくれ。
せめて仕様だけでも決めてくれ。
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNGXYZZYで使えるじゃん
0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNGって回った後に
> t
とか表示するようなのが「計算」っていう固定観念がある限りは
Javaにあるようなライブラリはなかなか整備されないと思われます。
0039デフォルトの名無しさん
NGNGそういう汚い世界とは別ものなんだよ。
もっと純粋で(Schemeはもっと純粋)美しいものなんだ。
0040デフォルトの名無しさん
NGNG世界は美しくなんかない(Schemeは例外)
0041デフォルトの名無しさん
NGNG|・ω・`) ・・・
|oACLo
|―u'
| ∧∧
|(´・ω・`)
|o ヾ
|―u' Allegro CL <コトッ
| ミ ピャッ!
| Allegro CL
0042デフォルトの名無しさん
NGNGAllegroCLは>>18の要求に応えれそう。だけどとても買える値段じゃない
と聞いている。
>>32
激しく同意ですねぇ。
0043デフォルトの名無しさん
NGNGロジック屋には必要ない産物。
0044デフォルトの名無しさん
NGNGちょっと見てみた。
Trial版でもGUIとグラフィカルな開発環境は使えるらしい
Trial版ではLispHeapサイズ(?)と使用期間に制限が有るらしい
でもダウンロードページの方には使用期間制限なんて書いてないように見える
DBとかは付いてこないみたい。CGIはHTTPdとインタプリタ次第なのでは?
0045デフォルトの名無しさん
NGNG買い切りでも$1,200って言ってたように記憶してるけど、法外な値段じゃないと思われ。
0046デフォルトの名無しさん
NGNG現在使用中。
GUIは使いやすい。VBライクにGUIが作れるのは入門としてはいい。
試用期間は延ばせるらしい。
DBはついてこないが、tomcatみたいなのがついてくる。タダらしい。
>45
仕事に使うなら高くない。
今、上司に売り込むために試用版でwebシステムを書いている。
成果が出れば、会社で採用してくれるかもしれない。
そうすれば会社で買ってくれるので、タダ。
0047デフォルトの名無しさん
NGNG> 今、上司に売り込むために試用版でwebシステムを書いている。
その上司さ、「ASP でいいじゃん」とか「PHP のほうがライブラリ充実してるだろ」とか
「誰がメンテすんだよコラ」とか言わないの?
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG入門以前の問題についての話題なんだから良しとしておこうぜ。
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGその上司はそんな上級な突っ込み入れられない人。
技術より、金と時間のことしか言わない。
なので、開発(開発費、時間短縮)、保守(ここで金取れる)
というように言っている。後は、結果次第。
0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNGもうすぐFranzの営業からメールが届くよ。
そしたら「上司説得するから導入例とか成功例とかいっぱいくれ〜」と返信してみそ。
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNGそれも含めて提案してある。lispの素人が、lispを使って
どのていどのコストでシステムを構築できるか。
ちなみに私はlispのド素人。
30人月ていどのJAVAのwebシステムと比較する予定。
その後の仕様変更に、どの程度のコスト、時間かかるかも
計測比較する予定。
0056デフォルトの名無しさん
NGNGその比較を業務の一部としてやらせてもらっているの?
恵まれた会社だねぇ。
0057デフォルトの名無しさん
NGNGそんなわけないでしょ。
通常業務が終わったあとに、自分の時間使ってやってるの。
上司に話は通してあるから会社のPCを使うのはOK。
でも残業代がでるわけでもない。提案こけたら成果もゼロ。
恵まれてはない、と思うけどなぁ。
それでもJAVAのデスマの後だから家に帰れる幸せをかみ締めてる。
0058デフォルトの名無しさん
NGNGその上司は至極まっとうなビジネスマンですね。
営利団体の目的と、目的の為の手段は問わないということをきちんと理解していらっしゃる。
0059デフォルトの名無しさん
NGNG目的として金銭的な利益追求しかなくなったらダメ。
0060デフォルトの名無しさん
NGNGACLでoracleとかpostgreとかのDBに接続するにはどうすればいいの?
そもそも繋げるの?
0061デフォルトの名無しさん
NGNGすべての間違いのもと。
0062デフォルトの名無しさん
NGNGm4 に代われるものってあるの?
いろいろ探したことあるけど、結局なかったよ。
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNGOracleとMySQLとNDBMには専用のパッケージが用意されてる。
PostgreSQLは知らん。と言いつつODBCサポートしてるから大抵のもんはつながるでしょ。
jLinker経由してJDBC叩いてたこともあったが、いまはAllegroCache待ち。
0065デフォルトの名無しさん
NGNGそこらへんのサポートはエンタープライズ版以上じゃなかったっけ?
006664
NGNGそうなんだ。エディションと機能の対応表みたいのあったはずだけどよく知らない。
devel.licにはEnterpriseって書いてあるからそうなのかもね。
でも他にもUncommonSQLとかCSQLとか使ってつなげる方法もあるんじゃないのかな。
確認は必要な人が各自でよろしく。
0067デフォルトの名無しさん
NGNGfaslつくったけど、直に実行できねぇやん。
0068本田
NGNGCPP
0069デフォルトの名無しさん
NGNGはいぃ?CPP って低機能過ぎて m4 と比べ物にならないよぉ。
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNGノシ
0073デフォルトの名無しさん
NGNGRuby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0074デフォルトの名無しさん
NGNG漏れも使ってる。けど「ノシ」ってなに?
>>71
関連過去スレで何度も出てるので探すよろし。回答するのがマンドクサイ価格体系なんで。
ちなみに一番安いのはタダ。
0075デフォルトの名無しさん
NGNG> けど「ノシ」ってなに?
手を振る様子を表す擬態文字
0076デフォルトの名無しさん
NGNGあげる
http://pc5.2ch.net/test/read.cgi/php/1102232976/l50
0077デフォルトの名無しさん
NGNGやらねばならないのですが、どなたかやり方を教えてください。
特に文字列の照合が分からないです・・・。
0078デフォルトの名無しさん
NGNGメール来たよ。
とりあえず導入事例や開発事例を教えてもらうとするかな。
>>76
おいおい
0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNGobject.methodで呼び出したりはなぜできませんか?
0081デフォルトの名無しさん
NGNG(method obj foo bar baz ...) を、(obj.method foo bar baz ...) て書きたいってことですか?
generic function で第一引数を特別扱いする理由はないと思うのですが。
それとも method の引数が obj のみである特別の場合について、
obj.method でメソッドの適用をしたい、てことでしょうか。
0082デフォルトの名無しさん
NGNGメソッドがクラスに従属するものだと思ってるんでそ。きっと。
0083デフォルトの名無しさん
NGNGクラスに属している(かのように見える)からねぇ。
CLOSのようにクラスの系に属するものは珍しいでしょ。
0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG意味わかんねぇ。
0086デフォルトの名無しさん
NGNG勉強もかねて。
0087デフォルトの名無しさん
NGNGなんでjavaなんだよ?
STLじゃダメなのかよ?
0088デフォルトの名無しさん
NGNGSTLでもいいけどJAVAだったらソース公開されてるし、templateって
LISPには実装不要でしょ?
0089デフォルトの名無しさん
NGNGRuby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNGjavaのコレクションフレームワークを実装したいのか?
気持ちはわかるがLispには型とかないからな、
あんまり役に立たないんじゃないか?
勉強にはなりそうだが
0092デフォルトの名無しさん
NGNGそれなりに意味はあるんじゃない?
0093デフォルトの名無しさん
NGNGCLにはリストを集合とみなして操作対象とするオペレータは次のものがあるけど、これじゃ
だめなの?
INTERSECTION, NINTERSECTION, ADJOIN, PUSHNEW, SET-DIFFERENCE, NSET-DIFFERENCE
SET-EXCLUSIVE-OR, NSET-EXCLUSIVE-OR, SUBSETP, UNION, NUNION
0094デフォルトの名無しさん
NGNG上記のオペレータをgeneric functionのメソッドとして実装することで、
既存の標準オペレータ群を透過的に拡張する。
(しかしGF化のペナルティーを差し引いてもお釣りがくるほど、速くなるか?)
0095デフォルトの名無しさん
NGNG比べて、7〜9倍くらい遅いと言ってたよ。
0096デフォルトの名無しさん
NGNGもし、そういうものがあればJAVAプログラマーをlispに取り込める
かもしれんな。つーわけで協力してもいいぞ。
0097デフォルトの名無しさん
NGNG何か教えてくれませんか?
http://www.stackasterisk.jp/tech/java/collection01_01.jsp
をチラっと読んだかぎりでは、すでにほとんど同じものがLispに存在しているように
感じられたので。
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNGってゆ〜か、LISPってそういう関数の紹介ページないの?
JAVADOCみたいなものでもいいけど
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG規定されています。
この規格書にもとづいて、各実装者がそれぞれの処理系を実装しています。
この規格書をHTML化し、リンクなどを張りめぐらした、Xanalys社の
Common Lisp HyperSpec が比較的有名です。これは、
http://www.lispworks.com/reference/HyperSpec/index.html
で閲覧も出来ますし、無料でダウンロードすることもできます。
Common Lispの言語仕様上の議論はこの規格書を基礎として行う事が多いと思います。
いわゆるコンテナのようなものとしては、Conses, Sequences, Hash tables,
のDictionary ページを見てみると様子がわかるかもしれません。
0103デフォルトの名無しさん
NGNG> Iterator って CL にある?
Iteratorは、with-hash-table-iterator, with-package-iteratorなどの
ハッシュテーブル用とパッケージ内のシンボル走査用のものはありますが、
Sequence用には用意されていません。
では、Sequence(リストとベクタ)の各要素を走査していくときはどうするかというと、
リストには、mapcar, mapc, mapcan, maplist, mapl, mapcon, dolist
Sequenceには、map, map-intoが用意されています。
また、その他にも、汎用のループオペレータであるdo, do*, loopなんかも
あります。
Sequence用のiteratorを実装してみるのは、Lispに慣れる練習になるかも。
0104デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNG(incf (getf *billing* :total) 100)
なんて記法ができるのはしびれるね。
0107デフォルトの名無しさん
NGNG無茶苦茶だぜ?デバッグ大変な気が。
ああいうのを「慣れ」としていいのだろうか、
と疑問に思った。
と同時にLISPの限界を見たって感じか。
ここまで力を持つ構文作るなら
万能代入メソッドみたいなの作ればいいと思った。
0108デフォルトの名無しさん
NGNGget-setf-expansionの返り値の意味を把握していないと辛いけど。
ちなみに変数の値を単純にswapするイディオムの展開は次のような感じ。
(macroexpand '(rotatef a b))=>
(LET* NIL
(MULTIPLE-VALUE-BIND (#:G5407) A
(MULTIPLE-VALUE-BIND (#:G5406) B (SETQ A #:G5406) (SETQ B #:G5407)))
NIL)
> 万能代入メソッドみたいなの作ればいいと思った。
そういう仕組みがdefsetfなのでは? メソッドとはCLOSのメソッドということ?
Lispでは「構文」と「メソッド」との区別が
それを使用しているコード上では分かりにくいからね。
0109デフォルトの名無しさん
NGNGたいんだよな?それは総称関数だけのライブラリってことなのか?
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNGELISP-CE = カスタマーエンジニア向けのEmacsLisp
0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNG2人はいる。
0114デフォルトの名無しさん
NGNG誰ですか?
して、そのプラグインは公開されてるのですか?
0115デフォルトの名無しさん
NGNGhttp://www.czempin.de/nicolai/blog/archives/000197.php
http://lemonodor.com/archives/000218.html
進行状況はわからん。
0116デフォルトの名無しさん
NGNGこっちこそすまん。聞き方がずさんだった。
まさか、マジに存在してるとは思ってなかった。
今から使ってみる。
0117デフォルトの名無しさん
NGNGhttp://common-lisp.net/project/lispbox/
WindowsでGNU CLISP + SLIME環境を整えるのが簡単になったらいいな。
0118デフォルトの名無しさん
NGNGあきらめるべし
0119デフォルトの名無しさん
NGNG逆に職業軍人向けはWindows環境が一番充実してる罠。
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNGこれtop
0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNGCLISP, GCL, ABCL はどれも Windows 上で動きますが…
Windows で CLISP + SLIME 環境を準備するのは難しいですか?
Emacs + CLISP + SLIME をまとめたパッケージが欲しいという
レベル?インストーラを作ったら需要があるのかなぁ.
# CMUCL, SBCL も Windows 対応が進行中ですし.
# 特に見放されては居ないとおもいますが.
>>123
xyzzy は ANSI CL じゃなくてその前の CLtL2 ベースですから
defclass はありません.
0125デフォルトの名無しさん
NGNG手軽にlispやりたいひとには需要あるんじゃない?
選択肢が増える。
>>123
defclassは自分で実装しろ
0126デフォルトの名無しさん
NGNG> Emacs + CLISP + SLIME をまとめたパッケージが欲しいという
> レベル?インストーラを作ったら需要があるのかなぁ.
それは117が言っているように"Lisp in a box"としてすでに存在するので、
それのEmacsをMeadowに変更してくれと言う事ではないかな?
0127デフォルトの名無しさん
NGNG> CLISP, GCL, ABCL はどれも Windows 上で動きますが…
CLtL2 キボン.さらに Windows で動いて,
しかも日本語も安心して使えないと困ります.clisp はダメぽ.
ビルドの仕方だけの問題なのかな?
どなたか japanese にやさしい clisp-win32 バイナリください m(__)m
lisp じゃないけど,windows 用ってなぜかインストーラ付きばかりですよね.
administrator 権限が無いマシンでは試すことさえできません.
大学の設備でプログラミングがやりずらいなんて...orz
0128デフォルトの名無しさん
NGNG"0"を任意の数だけ表示する関数を教えてください。
(setq i 0)
(while (< i 32) (print "0")(setq i (+ i 1)))
で上手くいかない・・・
0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNG任意個の"0"を並べた文字列をつくる
それを表示する
0133デフォルトの名無しさん
NGNG>>132
lisp ですから、文字列ではなく、リストを使うべきではないでしょうか?
例
(mapcar #'princ '("0" "0" "0"))
0134デフォルトの名無しさん
NGNG0135133
NGNG" なしで。
(mapcar #'princ '(0 0 0))
0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNGうぐ,自分は NT Emacs 使いなので…メイン環境が FreeBSD なんで site-lisp
とか共有する都合上 NT Emacs ですが,Meadow のが良いんですかね?
>>127
CLtL2 よりは HyperSpec のほうが…あれ?ライセンスは良いのかな?
CLISP は一番多言語サポートが良いと思いますが.あー Windows だと
ビルド環境整えるのが面倒なんで日本語サポートは….
0139デフォルトの名無しさん
NGNG環境は何ですか? Common Lisp には標準では while はありません.
n 個 0 を表示するには下記の方法から好きなものをどーぞ.
;; dotimes 構文
(defun f1 (n)
(dotimes (i n)
(princ n)))
;; do 構文
(defun f2 (n)
(do ((i 0 (1+ i))) ;; i=0 を宣言し,ループ毎に i = (1+ i) してカウンタを増す
((= i n)) ;; i==n になったらループ停止
(princ 0)))
;; loop 構文
(defun f3 (n)
(loop repeat n do (princ n)))
;; 再帰
(defun f4 (n)
(cond ((= n 0)
(princ 0))
(t
(princ 0)
(f4 (- n 1)))))
0140デフォルトの名無しさん
NGNGをを、ありがとうございます。
でわdoを戴きます
0141デフォルトの名無しさん
NGNG>>133
N 回の繰り返す時必要な情報は「何回繰り返したか?」という数値一つで良いですし、
結果も画面表示が得られれば良いだけなので「リストを使うべき」というほどでも
ありませんね。まぁ、mapcar を使うとすると
(defun zerozero (n)
(mapcar #'princ (make-list n :initial-element 0)))
でしょうか?mapcar は結果として 0 が n 個はいったのリストを返しますが、
これは表示のためだけにはちょっと勿体ないかもしれません。
Lisp だから List という考えかたではなく、状況によって適切なデータ構造は
何か?を考えるようにすると上達がはやいと思います。
>>137
呼べません。バイトコンパイルっつってもバイトコードの体系が違います。
0142132
NGNG>>128の例に出てくるようなオーダーならこれで十分でしょ。
多分一番早いし速い。
数がでかいのに対応したきゃ適当な単位に分ければよし。
0143デフォルトの名無しさん
NGNGLispだからリストを使うべきってすごい思い込みだ
CommonLispには他にも配列やら構造体やらクラスやらいろいろあるよ
あるものは使わなきゃ
0144デフォルトの名無しさん
NGNG他にネイティブコンパイルできるものはないのか?
Windows限定で(ACLなしで)
0145デフォルトの名無しさん
NGNG(setf sym (if nil '+ '-))
(funcall (string->function str) 1 2) ; => 3
(funcall (symbol->function sym) 1 2) ; => -1
のようなことをするにはどうしたらよいですか?
引数として与えられた文字列やsymbolにバインドされた関数
を返す関数を使いたいのてす。
0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNGLispWorksは?
0149デフォルトの名無しさん
NGNG0150デフォルトの名無しさん
NGNGありますよ
LispWorks $1100
Corman Common Lisp $200 (非商用フリー)
GCL Free
ECL Free
ってとこでしょうか
0151デフォルトの名無しさん
NGNGなんでACLは除外なの?
0152デフォルトの名無しさん
NGNG高すぎるから。
GCLとかよさそう。
GUIつきとかないかな
0153デフォルトの名無しさん
NGNG$599(62,000円)からあるけど。
0154デフォルトの名無しさん
NGNG日本語が通るのはLispWorksだけ?
0155デフォルトの名無しさん
NGNG> 日本語が通るのはLispWorksだけ?
たぶんそう。ただ上記にリストアップされていない、JVM上で動作するABCL(Armed Bear Common Lisp)は
日本語通りそうな気もする。だれか試していない?
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNGウニコードだからむりぽ。
LispWorks, ACL も3が蛙。
0159デフォルトの名無しさん
NGNGするのにCommonLispでは (funcall (intern "+") 1 2)
schemeだと
((eval (string->symbol "+") (scheme-report-environment 5)) 1 2)
こんなのしか書けなかった。もっとましな書き方があるはずですよね。
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGこれをパイロットPJとして、使い勝手、速度、仕様変更対応コストなど
データを取る予定。
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNG小規模1人プロジエクトじゃデータにならんと思われ。
0164デフォルトの名無しさん
NGNG殺すしかねぇな
0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG何か問題でも?
0167デフォルトの名無しさん
NGNG殺人は犯罪ですから。
0168デフォルトの名無しさん
NGNG一応UML2.0の読み書きぐらいなら仕事で使うレベルならば困らない。
が、私はスリーアミーゴスでもメラーでもケントベックでも、ファウラー
でもない。
「lispコードを読み込んで、UMLを作成するtool」なんざ作れん。
んな技術あったらラショナルに転職するわい。
だいたいLisp用にUMLを拡張するだけでも私の手に余るってんだよ。
0169デフォルトの名無しさん
NGNG社会的に抹殺してやれば団塊世代なんて直ぐに自殺しますよ。意外と軟弱。
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG機械的に意味を抽出できても意図とはかけ離れたものになると思う
コンパイラを1つ作るようなもの
0172デフォルトの名無しさん
NGNGどのみちLispのコンパイラなんて簡単に書けるんだから
そう大層に言うほどのことじゃない。
0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNG残せばいい話でしょ?
選択的にmacroexpandするようなのはコンパイラなんて気負うまでもなく書けるでしょ。
C/C++のcppマクロなんかとはわけが違うよ?
0175デフォルトの名無しさん
NGNGdefclassでもdefgenericでもいいのだが、それらをクラス図で扱うと言うの
なら、UMLをLisp用に拡張しなければならないということだ。
言語事態があまりにもC#やJAVAとはかけ離れすぎているから、
メタクラス使って拡張してXMI対応もしなければならない。
これを三人(私+新人二人)で、一月ではキツくねぇだろうかと、
思った次第(このtool自体をLispで書けは流石に無茶だろう)。
0176デフォルトの名無しさん
NGNGふと思ったんだが、その課長さんUMLとXMLと勘違いしていないかい?
どっかで「LISPでプログラム書いてXMLに変換するのはナウいですよ」とか言われて...
課長さん、忘れない様にブツブツ言いながら帰ってくる途中に
XML XML XML ... <地下鉄の中><居眠り><ドトールでコヒー> ... UML UML UML
ってなぐあい。あり得ないかもしれんが、そうであることを君のために祈っているよ(笑
0177デフォルトの名無しさん
NGNGやってみたら?
もし出来たら発表してよ。
0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNG奴に処理系作る時間は無いかと
0181デフォルトの名無しさん
NGNG働かなくても食っていける資産はあるだろ。
まさかエッセイばかり書いているわけでもあるまい。
0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNGポール グレアム
ポール グラハム
どっちが正しい?
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNG「グラハム」って呼んでる人は会ったことない。
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNG(゚∀゚ )ー┐ グレアムグレアム!
しヽ し′
彡 > 彡)
/ / /
(_(__)
∧_∧
┌ー( ゚∀゚)グレアムグレアム!
丶J /J
( ミ < ミ
丶 丶 丶
(__)_)
0188デフォルトの名無しさん
NGNG資産があって暇なら数値計算にも手を出して,文書を書いて欲しいです.
0189デフォルトの名無しさん
NGNGCommonLispのラッパーみたいなので済まそうと考えてるヘタレ
どう見てもarcは破綻してるだろ
0190デフォルトの名無しさん
NGNGラップでもなんでもいいんだが、ただの方言でしかないのか?
0191デフォルトの名無しさん
NGNGhttp://www.paulgraham.com/arcll1.html
http://www.paulgraham.com/ilc03.html
この辺を読んでイメージをつかんでくれ、と言いたいところだけれど、
原理的なところと実用的なところの話がごっちゃに出てきてて、
いまいちはっきりしないのは確かだな。
一応、かつて上記のを読んで印象に残ってるのは、
名前空間はひとつ、てのとマクロをオプションで実行時展開できるようにする、
て話かなあ、CL と違うってことだと。
まあ、基本的には Lisp は Lisp なんで糖衣構文で何とかならない?
的なネタもある、というか多いけれど。
あとはインデントに構文的な意味を与える、とかもあったかな。
0192デフォルトの名無しさん
NGNG十把一絡げの愚図Java,C++,Perlみたいなカス言語フリーク野郎が
Ruby作者matzのような結果を出した人間と自分との格差を認められず
おこがましくも精神的に一矢報いようとするために
仰々しく「批評」とか名付けた浅ましい自己主張で攻撃して
自尊心を慰めてるにすぎない。
実際問題として、お前みたいな奴が考えてるほど
批評された側の役に立ってるわけがないだろ?ボケが。
その口から出るクソが誰かに感謝でもされたか?ああ?
自意識過剰甚だしいんだよ、この自己愛のボケ奴隷が。
数倍マシ?寝言は寝て言えよこの恥知らず野郎。
ネットで万能感むき出しにしてオナってんじゃねーよ。
批判する野党が重要だぁ?プ
公明党にでも投票してろ白痴野郎。
0193デフォルトの名無しさん
NGNGA: 誤爆
B: 編集忘れ
C: スクリプト
D: 釣り
正解はどれ?
0194デフォルトの名無しさん
NGNGE: コピペ
0195デフォルトの名無しさん
NGNGようはLispでSOAPが出来ますか、と言うことですが。
0196デフォルトの名無しさん
NGNG故にSOAP対応なんてする必要がない。
去れ、邪教徒よ。
0197デフォルトの名無しさん
NGNGoctave 並に楽に書けると嬉しいです.
(let* ((time (linspace 0, 1, 128))
(y (cos time)))
(Y (ffi y))
...
みたいな.
;; slib の plotting はジョーク?
0198197
NGNGどちらかというと,Windows でも良い処理系がある scheme の方が
ポータビリティ (?) がいいのかな?
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG完成って・・・
SOA対応でlispからSOAの手軽な実装方法とか出せたら、
今のC#とかJAVAに取って代われるかもしれないぞ?
0201デフォルトの名無しさん
NGNGなんか今年の初夢みたいな話だな(笑
0202デフォルトの名無しさん
NGNGACL7.0を買う!!
0203デフォルトの名無しさん
NGNG俺にも(ヽ゚д)クレ
0204デフォルトの名無しさん
NGNGCLISPのバイトコードをJAVAとかVC++から呼ぶことは出来ますか?
またCLISPからC++やJAVAを呼ぶことは出来ますか?
JYTHONみたいにJAVAのクラスをぞのまま呼べるCLの環境とか
ありますか?(これは流石にないか)
0205デフォルトの名無しさん
NGNGできません(exeにすれば実行はできるかもしれません)
できません
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGJava と連携したいなら ABCL とか。
http://armedbear-j.sourceforge.net/
http://www.cliki.net/Armed%20Bear%20Lisp
JFLI が LispWorks 以外で動くのを気長に待つとか。
http://jfli.sourceforge.net/
;; どっちも使ったこと無いけど。
0208デフォルトの名無しさん
NGNGサンクス〜〜
つかjfliは凄くないかい?
ぱっと見はJYTHONを超えてるよ。
ま、見た目なんだが。
0209デフォルトの名無しさん
NGNG> またCLISPからC++やJAVAを呼ぶことは出来ますか?
これは,c++ のヘッダファイルを読んで defclass するってことですか?
c++ で作った共有ライブラリを clisp で呼ぶことはできますね (って知ってるかorz).
0210デフォルトの名無しさん
NGNG・・・・・・・・・知らないです。
CLISP歴2時間なんで.....orz
0211デフォルトの名無しさん
NGNGhttp://lwn.net/Articles/104991/
http://home.comcast.net/~bc19191/blog/index.html
Rich Hickey って素敵な名前だな。あやかりたい・・・。
0212デフォルトの名無しさん
NGNGちょっとづつ調べているんですが、質問させてください。
1.Lispマシンは現在販売されているのでしょうか?
2.LispマシンはOSもLisp実装なのでしょうか?
3.趣味で作ってみたい(FPGL+VHDL)と思ってますが、
同様に挑戦された方の記録をご存知でしたら教えて
ください。
0213デフォルトの名無しさん
NGNG似た事をしている人なら居るよ。
http://common-lisp.net/project/movitz/
本物の Lisp マシンは GC を H/W でやってたらしいね。
0214デフォルトの名無しさん
NGNGこれもある意味 LispM かな。ちょっと欲しいかも。
0215デフォルトの名無しさん
NGNGさっそくのレスありがとう。
>>213
GCもハードですか・・・
さすがLispマシンですね。
教えていただいたページを読んでみます。
英語・・・なので、読むの時間がかかりそうですが・・・(^ ^;
>>214
HPを見たのですが、Lispという記述がみつからなかった
のですが、ソフトはLispで実装されているのですか?
0216デフォルトの名無しさん
NGNGAI-1000 についてはここら辺を見て下さい。
ttp://www2b.biglobe.ne.jp/~houmei/restore/ai1000/
ttp://www6.plala.or.jp/uekiya/pockecom/pj.html
http://jp.franz.com/jlug/ja/resources/implementations.html
以前 Lisp スレで話題に上がっていた LispM エミュレータ。
http://www2.parc.com/istl/groups/nltt/medley/
http://www.heeltoe.com/retro/cadr/
(medley は Solaris で動きました。
URL はここ経由です。 http://lambda.s55.xrea.com/)
0217デフォルトの名無しさん
NGNGわざわざありがとうございます。
2年位かけて自分だけのLispマシンを作るつもりです。
最終的にはハードも自作できたらいいなと思っています。
なにぶん初心者なので、まずは教えていただいたMovitzを
いじって簡単なOSをつくるところから始めたいと思います。
では、なにか成果がありましたらご報告します。
0218デフォルトの名無しさん
NGNGなんか、往年のX68000ユーザみたいなこと言うね。その姿勢は好きなんで頑張ってね。
0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNG懐かしい…
0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNG>MorphyOneの二の前になりそうな悪寒
二の前は一?
0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
05/01/20 06:38:16余裕でできる。 aserve でググれ。
0226デフォルトの名無しさん
05/01/20 21:16:56でもコンパイルできない
faslが作れん
何故だ?
0227デフォルトの名無しさん
05/01/21 01:33:310228デフォルトの名無しさん
05/01/21 07:01:25aclはデモ版か?
(sys:update-allegro)とかちゃんとやっとけや(゚Д゚)ゴルァ!
0229デフォルトの名無しさん
05/01/21 22:42:08何故かコンパイル中に強制終了する
やり方間違っていんのかなぁ?
0230デフォルトの名無しさん
05/01/22 00:39:16「落としてきた」って書くからにはACL突っ込むと勝手にインストールされる奴じゃ
なくてPortable AllegroAserveをコンパイルしようとしてるってこと?
いずれにしても、処理系のバージョンとかプラットフォームとかどんな症状なのかとか
もちっと詳しく書けや。エスパー募集中ならそれも書いとけ。
0231デフォルトの名無しさん
05/01/22 04:32:22環境はWinXPにACL6.2TrialでaserverはAllegroServeを落としてきた。
んで、faslがないからコンパイルしたら途中で異常終了する。
こんなところ。
0232デフォルトの名無しさん
05/01/22 06:58:02関数の入り口に型書いたらちゃんとその型以外はブロックしてくれる?
気になって夜も練れません
0233デフォルトの名無しさん
05/01/22 06:59:28つーか書けるの?
こうして朝を迎えました
0234デフォルトの名無しさん
05/01/22 07:12:55ありそうなんだけど、書き方がわからない
自分で定義した関数や変数を自前のpackageに入れるってできますか?
0235デフォルトの名無しさん
05/01/22 08:46:33> 型書いたらちゃんと最適化してくれる?
言語仕様上は要求されていないが、最適化してくれる処理系は存在する。
> 関数の入り口に型書いたらちゃんとその型以外はブロックしてくれる?
当て推量だが、あなたが意図しているようなのは通常の関数にはないかも。
ジェネリック関数は、引数の型による自動エラー報知機能を持っていると
考えてもいいかな。
普通にコーディングしていれば、型宣言をしなくても、予想外の型に対して
変なことをしようとすれば実行時にエラーとなり、コード上でそれを捕捉可能。
型宣言をしておくと、賢いコンパイラは、型やぶりな関数呼び出しだと推論
できたときは警告やエラーを発するものもある。たとえば(car 1)などね。
0236デフォルトの名無しさん
05/01/22 08:51:19http://www.lispworks.com/documentation/HyperSpec/Body/d_ftype.htm
(declare (ftype (function (number) float) sine))
0237デフォルトの名無しさん
05/01/22 08:55:23> JAVAみたいにpackageってあるの?
Javaと同等なものかは分からないけど、パッケージはある。
> ありそうなんだけど、書き方がわからない
> 自分で定義した関数や変数を自前のpackageに入れるってできますか?
できる。英語が読めるんなら、最近はネットで入門書がごろごろしていると思うよ。
0238デフォルトの名無しさん
05/01/22 09:03:51たとえば、「Practical Common Lisp」の
21. Programming in the Large: Packages and Symbols
http://www.gigamonkeys.com/book/programming-in-the-large-packages-and-symbols.html
とかね。俺は読んで無いんで内容の保証はできんけど。
0239デフォルトの名無しさん
05/01/22 10:28:26Lispのインタラクティブな環境でパッケージを移動して作業してみると、
パッケージってのが単なる名前空間って事が感覚として良くわかる。
0240デフォルトの名無しさん
05/01/22 17:37:47acl 起動して
(require :aserve)
して、
c:\Program Files\acl62-trial\examples\aserve\examples.cl
をロードして、
(net.aserve:start :port 7777)
して、
http://localhost:7777/
を開く。
0241デフォルトの名無しさん
05/01/22 18:44:27個人でちょっと勉強がてらに使うことを考えているのですが?
めちゃくちゃ制限があるのでしょうか?
0242デフォルトの名無しさん
05/01/22 19:25:39つーか、みんな院生?
0243デフォルトの名無しさん
05/01/22 19:26:460244デフォルトの名無しさん
05/01/23 01:48:12動いたよ〜ありがとう♪
しかし、なぜfaslが作れなかったのか・・・
0245デフォルトの名無しさん
05/01/23 02:26:31func
(defpackage "my-package"
(:export "FUNC"))
funcという関数をmy-packageにexportしたいんですが、defpackageでエラー
になります。何が間違ってるんでしょうか??
0246デフォルトの名無しさん
05/01/23 09:21:45CL-USER> (defpackage "MY-PACKAGE" (:export "FUNC")) => #<PACKAGE MY-PACKAGE>
CL-USER> (in-package "MY-PACKAGE") => #<PACKAGE MY-PACKAGE>
MY-PACKAGE> (defun func () (* 12 12)) => func
MY-PACKAGE> (in-package "CL-USER") => #<PACKAGE COMMON-LISP-USER>
CL-USER> (my-package:func) => 144
CL-USER> (func) -> undefined function FUNC [Condition of type SYSTEM::SIMPLE-UNDEFINED-FUNCTION]
0247デフォルトの名無しさん
05/01/23 09:23:55CL-USER> (shadowing-import 'my-package:func) => T
CL-USER> (func) => 144
0248デフォルトの名無しさん
05/01/23 09:36:56CL-USER> (defun func()(* 12 12)) => FUNC
CL-USER> (defpackage "MY-PACKAGE" (:import-from "CL-USER" "FUNC")) => #<PACKAGE MY-PACKAGE>
CL-USER> (my-package::func) => 144
CL-USER> (my-package:func) -> #<PACKAGE MY-PACKAGE> has no external symbol with name "FUNC"
[Condition of type SYSTEM::SIMPLE-PACKAGE-ERROR]
CL-USER> (export '(my-package::func) "MY-PACKAGE") => T
CL-USER> (my-package:func) => 144
0249デフォルトの名無しさん
05/01/24 03:32:45ありがとうございます。出来ました。
これってC++とかのnamespaceと似たようなものと考えていいんでしょうか?
C++だと自作のutilityとかを
namespace my_util{.....}
とかしてるんですが、LISPでは作法的にどうなんでしょうか?
0250デフォルトの名無しさん
05/01/24 04:12:25一日一問でさ
0251デフォルトの名無しさん
05/01/24 06:42:26apatchでlispとか使えないのかな
(個人的にはACLとか大規模なもんじゃなくてclispやxyzzyとapatchが
連携できればいいのになぁ、と思っている)
0252デフォルトの名無しさん
05/01/24 07:47:09C++のnamespaceと似た役割をします。
たとえば、mail.lispというライブラリを次のように書いたりします。
;;; file mail.lisp starts here
(defpackage "MAIL" (:export "SEND" "RECEIVE"))
(in-package "MAIL")
(defun send () ...)
(defun receive () ...)
;;; file mail.lisp ends here
mail.lispを使う側のパッケージでは特に何も宣言せずに、
mail:send、mail:recieveと書いてアクセスするか、
(use-package "MAIL")と最初に書いておく事で、単にsend, mailとして
アクセスできるようにします。もしくは (defpackage "FOO" (:use "MAIL")))など
としても、その後はパッケージFOO内ではsendとmailと書けます。
0253デフォルトの名無しさん
05/01/24 07:56:02CGIプログラムをLisp(cmucl, clispなど)で書いたりということが簡単にできるらしい。
Windowsに関しても、Windows用のバイナリがmod_lispの開発もとにあったから、
できるでしょう。たぶん。
0254デフォルトの名無しさん
05/01/24 10:32:14swingを使用して、clispを使用した開発環境を
作りたいと思っているのですが、swing側で入力したs式をclispに渡すには
どうすればよいのでしょうか?
また、clisp側での評価結果をswing側に返すには
どうすればよいのでしょうか?
ご存知の方いらっしゃたら教えてください
お願いします
0255デフォルトの名無しさん
05/01/24 12:37:12http://jabberwocky.sourceforge.net/
Jabberwocky is a integrated development environment for the LISP programming language. The following components are available :
* A editor with syntax coloring and code completion.
* A interaction pane with the LISP process.
* A browser of the sources,functions,macros etc..
* A source level debugger (the successor of Lisp Debug).
JACOL: http://jacol.sourceforge.net/
JACOL is a framework for allowing Java and Common Lisp to interoperate. It's intended use is to enable Common Lisp to function as an extension language for Java. But, it can also be used to expose Java APIs (such as Swing and DOM) to Lisp applications.
0256デフォルトの名無しさん
05/01/24 15:07:03mod_lispは外部のプロセスと通信する単なるスタブみたいなもん。
プロトコルを守れば、好きなLisp実装が使えるし、別にLispで無くたっていい。
0257デフォルトの名無しさん
05/01/25 02:26:20ほい
http://pc5.2ch.net/test/read.cgi/tech/1106587515/l50
0258デフォルトの名無しさん
05/01/25 08:48:52自作自演乙
0259デフォルトの名無しさん
05/01/26 09:48:40(setq a 0)(setq a(+ a 2)))
という関数を定義すると、
(func)->2
となります。ここまではいいんですが、次に
(func)->4
になります。
関数の中で定義した変数はstaticなんでしょうか?
関数ローカルな変数が初期化されないのが不思議です。
0260デフォルトの名無しさん
05/01/26 10:20:15どっか外のaが潰れてるだけだよ
0261デフォルトの名無しさん
05/01/26 10:58:51Rubyかなんかと間違えてるのではなかろうか。
aは関数ローカルな変数なんかにならないよ。
そういうものが欲しければletを使って束縛しろ。
それはそれとして、2回目が4になるって変じゃないか?
何回やろうが0+2=2になるはずだが。
0262デフォルトの名無しさん
05/01/26 15:43:380263デフォルトの名無しさん
05/01/26 19:28:140264デフォルトの名無しさん
05/01/26 19:36:10=> (KEY0 VALUE0 KEY1 VALUE1 KEY2 VALUE2)
0265デフォルトの名無しさん
05/01/26 23:06:520266デフォルトの名無しさん
05/01/27 03:13:58ωを自然数のリストとする。
MAX(ω)=0(ωがNILのとき) ωに含まれる最大の数
例ω=(8,13、25、10)のときMAX(ω)=25
組み込み関数
LESSTHAN(n,m)=T(n<m) NIL(n≧m)を使用すること。
もしよろしければ教えていただけないでしょうか?
どーも基礎がよくわかってないみたいで・・・
0267デフォルトの名無しさん
05/01/27 05:04:48解決するのがよろしいかと。
0268デフォルトの名無しさん
05/01/27 09:16:18(if (null ω) 0
((lambda (n m) (if (LESSTHAN n m) m n))
(car ω) (MAX (cdr ω)))))
0269デフォルトの名無しさん
05/01/27 12:59:45(defmacro macro()())
(setq m 'macro)
(a)->error
呼べないのかな
0270デフォルトの名無しさん
05/01/27 13:15:32(m)->error
0271デフォルトの名無しさん
05/01/27 13:17:39(setq a (macro-function 'foo))
(funcall a '(foo a) nil) => (CAR A)
0272デフォルトの名無しさん
05/01/27 16:11:34変わる、と思っていますが正しいですか?
0273デフォルトの名無しさん
05/01/27 16:14:28実現可能性とシナリオは?
市場アクションは?
0274デフォルトの名無しさん
05/01/27 16:32:140275デフォルトの名無しさん
05/01/28 07:58:09Clispってパイプありますか?
0276デフォルトの名無しさん
05/01/28 09:07:2730.8.2. Pipes
http://clisp.cons.org/impnotes.html#pipe
0277デフォルトの名無しさん
05/01/28 10:27:48ごめんなさい
0278デフォルトの名無しさん
05/01/29 19:30:21(length 'data)->error
(length '(1 2(3 4(5))) )->3
なぜ・・・?データとしてはまったく同じリストだと思うんですが
0279デフォルトの名無しさん
05/01/29 19:49:120280デフォルトの名無しさん
05/01/29 19:56:15ということはlengthってマクロですか
0281デフォルトの名無しさん
05/01/29 20:26:28ハァ?
シンボルにlengthを適用しようとしたからエラーになってるんだぞ?
0282デフォルトの名無しさん
05/01/29 20:42:350283デフォルトの名無しさん
05/01/29 21:20:190284ウエシマ
05/01/30 08:23:100285デフォルトの名無しさん
05/01/30 10:13:310286デフォルトの名無しさん
05/01/30 15:51:35・タバコをやめる(ただしやめることでストレス増加なら逆効果)
・2日に一回は頭を洗ってマッサージし頭皮を清潔にする
・生活リズムを整える(徹夜しない)
・風の強い場所に長くいない(そゆときは帽子着用)
・暑い場所に長くいない(タオルで小まめに汗をふき取る)
・ストレスを溜めず、感情的にならない
・水泳するときは帽子着用(プールの水は髪にあまりよくない)
0287デフォルトの名無しさん
05/01/31 10:50:36ありませんか?
0288デフォルトの名無しさん
05/01/31 22:54:470289デフォルトの名無しさん
05/02/01 11:26:22ありがとございます
Allegro JILとか機能的に便利だけど、金かかるのか。。。
買うしかないかなぁ
0290デフォルトの名無しさん
05/02/01 20:54:30http://jp.franz.com/base/seminar-2005-02-03.html
0291デフォルトの名無しさん
05/02/02 20:10:19インテリセンスってどうやればよいのでしょうか?
0292デフォルトの名無しさん
05/02/02 20:11:270293デフォルトの名無しさん
05/02/02 20:31:44Lispには予約語はありません。
0294デフォルトの名無しさん
05/02/02 20:45:30<foo>
(undefun 'foo)
<undefun-foo>
のような一度defunしたものをリリースするundefunのような
関数ってCLにありますか?
0295デフォルトの名無しさん
05/02/02 20:51:48unintern
0296デフォルトの名無しさん
05/02/03 00:02:20()は予約記号。
0297デフォルトの名無しさん
05/02/03 01:00:32m4みたいに
0298デフォルトの名無しさん
05/02/03 22:13:49(hashmap obj "KEY" "OBJECT")
みたいな
0299デフォルトの名無しさん
05/02/03 22:35:420300デフォルトの名無しさん
05/02/03 23:09:12String key "KEY";
String object = "OBJECT";
hobj.put(key,object);
System.out.println( hobj.get(key) );//"OBJECT"が表示される
こんなんです
0301デフォルトの名無しさん
05/02/04 00:14:26データ構造でなくJavaのHashMapが質問に出てくるところがなんだかなー。
0302デフォルトの名無しさん
05/02/04 00:46:59Attempt to add the method
#<STANDARD-METHOD ほげほげ> to the generic function
#<STANDARD-GENERIC-FUNCTION ほげほげ>, but the method has
"more" optional arguments than the generic function.
と怒られてしまいます。開発中にいちいち処理系を起動しなおすのはかったるいので
なんとかならないかと思うんですが、どうすりゃいいんでしょ。
0303デフォルトの名無しさん
05/02/04 08:30:38メソッドと、defmethodで定義したメソッドは区別されるみたい。
defgenericの場合はラムダリストを変更して再定義することが許されている様子。
GNU CLISPではエラーになったけど。CMUCLでは可能。
(defgeneric foo (a b) (:method (a b) (list a b))) => #<GENERIC-FUNCTION FOO>
(foo 1 2) => (1 2)
(defgeneric foo (a b &optional c) (:method (a b &optional c) (list a b c))) => #<GENERIC-FUNCTION FOO>
(foo 1 2 3) => (1 2 3)
あとは、find-methodとremove-methodでメソッドを削除してからdefgenericとか。
0304デフォルトの名無しさん
05/02/04 14:09:51今度はfind-method/remove-methodでやってみます。
今まではシンボルごとuninternしちゃってました。
どうもありがとうございました。
0305デフォルトの名無しさん
05/02/04 16:10:050306デフォルトの名無しさん
05/02/04 16:11:50テンプレ嫁
http://pc5.2ch.net/test/read.cgi/tech/1100229366/
0307デフォルトの名無しさん
05/02/05 22:42:02その辺の情報の載ったサイトとか本ありませんか?
0308デフォルトの名無しさん
05/02/05 22:56:090309デフォルトの名無しさん
05/02/05 23:06:090310デフォルトの名無しさん
05/02/06 17:36:15どうやって使うものなんでしょうか?
0311デフォルトの名無しさん
05/02/06 18:48:22もしそうなら使い方がわからない時点で貴方には必要のないものだと思うのですが。
AMOPは読破・理解されましたか?
0312デフォルトの名無しさん
05/02/06 21:10:14CLOSを実装するのに必要となる、ある程度の動作が規定された一連のジェネリック関数が存在し、
それらのメソッドを独自に定義することにより、カスタマイズを行います。
たとえば、永続化をサポートしたオブジェクトをシステムに組み込むなんて
ときに使うこともあれば、CLOSに標準化される前の古いオブジェクトシステムを
エミュレートしたりするときに使うこともあるでしょう。
MOPの仕様は公開されているので読んでみてはいかが?
http://www.lisp.org/mop/index.html
0313デフォルトの名無しさん
05/02/07 20:28:56Lispより素晴らしい。
何よりIDEが素晴らしい。
と、言語マニアな友人が言っていた。
マジかぁ?
0314デフォルトの名無しさん
05/02/07 23:04:49>dylanという言語は素晴らしい
dylanって何?
0315デフォルトの名無しさん
05/02/07 23:44:280316デフォルトの名無しさん
05/02/07 23:58:420317デフォルトの名無しさん
05/02/08 21:35:26dylan
http://pc5.2ch.net/test/read.cgi/tech/1004242854/
0318デフォルトの名無しさん
05/02/13 16:57:45(append '(1 2) '(3 4)) => (1 2 3 4)
仕様では前半の '(1 2) は新しいセルを作って内容を
コピーするらしいのですが、なんで前半の最後を後半の
最初に繋げるだけじゃ駄目なんですか?
0319デフォルトの名無しさん
05/02/13 17:37:26(1 2)
CL-USER> x
(1 2)
CL-USER> (append x (list 3 4))
(1 2 3 4)
CL-USER> x
(1 2)
CL-USER> (nconc x (list 3 4))
(1 2 3 4)
CL-USER> x
(1 2 3 4)
CL-USER>
0320デフォルトの名無しさん
05/02/13 18:26:580321デフォルトの名無しさん
05/02/14 08:40:44> なんで前半の最後を後半の最初に繋げるだけじゃ駄目なんですか?
それにはnconcという別の関数が用意されている(「駄目」とかじゃなく
別々の使い方に対応するためにappendとnconcが用意されている)。
なぜappendが現在の仕様になっているかというと、
あるリストを参照している変数や自分の一部として参照しているLisp objectは
複数存在する可能性があって、そういうリストを1つの参照元が勝手に変更すると、
そのリストが変更されるとは想定していない別の参照元で混乱が生じるときがあるため。
(setq x (list 1 2)) => (1 2)
(setq y (cons 0 x)) => (0 1 2)
;; yが参照しているリストは勝手に変更されないとプログラマーは想定しているとする。
(setq z (nconc x '(3))) => (1 2 3)
y => (0 1 2 3) ;; えっ! (0 1 2)と変わっとるやないけ!
なぜnconcが用意されているかといえば、appendより速度、空間的なコストが安くあがる
可能性が高いため。
こんなんでどうでしょう?
0322デフォルトの名無しさん
05/02/14 08:44:130323デフォルトの名無しさん
05/02/14 11:20:10> (append '(1 2) '(3 4)) => (1 2 3 4)
'(1 2), '(3 4)は定数なのでテキストセグメントなど変更できないメモリ領域に
とられる可能性がある。そうするとappendの代わりにnconcを使って前半のリストを
変更すると、bus errorで落ちる。
0324デフォルトの名無しさん
05/02/14 23:28:540325デフォルトの名無しさん
05/02/14 23:30:05実は童貞だけどチョコレートもらえたんだ。
0326デフォルトの名無しさん
05/02/24 23:09:020327デフォルトの名無しさん
05/02/25 00:41:400328デフォルトの名無しさん
05/02/27 13:28:460329デフォルトの名無しさん
05/02/27 16:41:12n
(defmacro macro(x)
`(defun ,(car x) (y)
(print y)
)
)
このマクロがエラーになるのですがどうしてでしょうか?
`(defun ,(car n) (y) (print y))
これと同じ事をしているつもりなんですが・・・
0330デフォルトの名無しさん
05/02/27 17:35:58お騒がせしました
0331デフォルトの名無しさん
05/03/01 20:56:04作成したいんですが、
(defmacro macro(x)
`(if,(atom ,x)
(print "atom")
(print "false")
)
上のようなマクロで動くんですが、
展開したときに
(macroexpand-1 '(macro 'a)) -> (print "atom")
となるようしするにはどうすればいいんでしょうか??
0332デフォルトの名無しさん
05/03/01 22:23:19`(print ,(if (atom x) "atom" "false"))
0333デフォルトの名無しさん
05/03/01 22:32:270334デフォルトの名無しさん
05/03/02 01:15:22ありがとうございます。
マクロは凄い機能ですね、昔C++でどうしてもできなくて挫折した
機能をわずか数行で実現できました。
0335デフォルトの名無しさん
05/03/02 03:02:22なにが決定的に異なるかでもいいですが。
schemeを覚えたからといってcommon lisp のプログラムがかけるとか、そういうことは無いのですか?
0336デフォルトの名無しさん
05/03/02 03:30:080337デフォルトの名無しさん
05/03/02 04:14:03個人的には、最初にぶつかる大きな違いは
define-syntax と defmacro の違いかなあと思います。
call/cc は……scheme で call/cc 使いこなせるくらいになったら、
common lisp の特殊形式諸々で何とかできない……のかなあ。
私は call/cc 使いこなしてるわけじゃないので何とも。
clos も plt やら gauche を使えば、まあ、それなりに、て気もするし。
名前空間辺りは、好みはあっても、基本的にはすぐに慣れるでしょう。
たまにうっかり #' 付けたり付け忘れたりしますけど。あと funcall とか。
まあ、scheme やってればすぐ common lisp で書けるようなるかっていうと、
やっぱり慣れるのに時間は必要でしょうけれど、やってないよりは遥かに楽に入れるとは思います。
0338デフォルトの名無しさん
05/03/02 05:25:450339デフォルトの名無しさん
05/03/04 17:44:07Clispでうありたいんですけど。。。
0340デフォルトの名無しさん
05/03/04 18:57:18はいな。
http://clisp.cons.org/impnotes.html#regexp
0341デフォルトの名無しさん
05/03/04 19:01:02さんくすです
0342デフォルトの名無しさん
05/03/05 12:43:02schemeな人が「Lisp?(プゲラ」みたいなことよく言ってるけど、
こうしてみると、別にそれほどLispが劣ってるようには見えないなあ。
大して違わないじゃん。
0343デフォルトの名無しさん
05/03/05 13:31:47仕事で泥臭いことも泣く泣くやらなきゃいけないときはCommon Lisp
フリーソフト作ってみんなに自慢したいときはEmacs Lisp
0344デフォルトの名無しさん
05/03/05 14:56:15ちっとも泥臭くない。
0345デフォルトの名無しさん
05/03/05 16:46:25仕事で泣く泣くCommonLispなんて選択する奴いるのかね。
0346デフォルトの名無しさん
05/03/05 17:31:16lispとschemeで相違点あるのか?
ほとんど同じようなもんじゃないのか?
0347デフォルトの名無しさん
05/03/05 19:10:12このスレ、なんのために立てたんだ?
0348デフォルトの名無しさん
05/03/05 19:11:19どこで言ってたのか教えてくれよ(プゲラ
0349デフォルトの名無しさん
05/03/05 20:39:24call/cc も catch/throw で代用できるケースしかあまり使わない。
(そうでないケースで使うと極端に効率の悪い処理系もある)
srfi の実装も結構まちまちで、ポータビリティを考えると結構めんどくさい。
ってなわけで、最近は Scheme より Common Lisp を使うことが多いね。
0350デフォルトの名無しさん
05/03/05 23:32:23Lisp
+- Common Lisp
+- Scheme
+- Emacs Lisp
+- その他の Lisp 方言
:
0351デフォルトの名無しさん
05/03/05 23:48:150352デフォルトの名無しさん
05/03/06 00:01:58このスレの流れは >>335 から派生しているのだよ。
0353デフォルトの名無しさん
05/03/06 00:40:06あぁ、あれか。あれは Common Lisp 派の漏れでも醜いなと思う。
CLtL2 を読んだとき目を疑ったよ。Common Lisp の汚点だ。w
漏れ的にはループは do がデフォかな。loop は無条件繰り返しのときだけ使う。
0354デフォルトの名無しさん
05/03/06 00:44:47CommonLispにだってperlやrubyみたいな単一の実装があるわけじゃないんでしょ?
だったらポータビリティの問題はschemeとかわらないんじゃない?
0355デフォルトの名無しさん
05/03/06 00:54:250356デフォルトの名無しさん
05/03/06 00:57:40Common Lisp なら言語で定義されている範囲で済むことでも、Scheme の場合は
ちょっとした便利関数でも R5RS では定義されてないから結局 SRFI のお世話に
なってしまう。そのときの処理系間のばらつきが割と大きいように思えるということ。
別に Scheme が嫌いなわけじゃないよ。念のため。
0357デフォルトの名無しさん
05/03/06 01:26:26欠かせない重要なことすら処理系依存じゃん。
そういうのは嫌なとこだよね。
0358デフォルトの名無しさん
05/03/06 06:10:36定義された関数仕様が気に入らない
マクロ覚えたて厨が考えたみたいなマクロとか、
どこぞの処理系の実装そのまんまとか
ところで、ここはCommonLispスレじゃなかったのか
0359デフォルトの名無しさん
05/03/06 11:49:490360デフォルトの名無しさん
05/03/06 20:03:24ちなみに漏れは CLISP だが。
0361デフォルトの名無しさん
05/03/06 20:27:090362デフォルトの名無しさん
05/03/06 22:20:39日本語とデバッガと独自関数の便利さから。
しかしcommon lispと結構違うのが痛い。
日本語と環境(デバッガ)とフリーという三つの条件入れるとこれしか選択肢ないんだよな。
Schemeは全滅。
0363デフォルトの名無しさん
05/03/06 22:51:10最近の CLISP は GNU libiconv 使ってて国際化は結構充実しているっぽいよ。
http://clisp.cons.org/impnotes/encoding.html
0364デフォルトの名無しさん
05/03/07 05:40:28eclipseみたいな環境があればもっといい。
エディタは飽きた。
0365デフォルトの名無しさん
05/03/07 09:20:21環境が多少悪いかもしれないけどこれしかないんだから
我慢するしかない。
0366デフォルトの名無しさん
05/03/08 06:21:06JAVAでさくっと作ってみるかな。。。
0367デフォルトの名無しさん
05/03/08 12:36:51http://ciapek.uci.agh.edu.pl/~kwlodarc/VisualCLisp/en.htm
0368デフォルトの名無しさん
05/03/08 20:00:20使ってみたけど、なんか意味あるのかこれ?
デバッガと言ってもインタプリタがそのまま出てきただけだったぞ。
0369デフォルトの名無しさん
05/03/08 20:10:190370デフォルトの名無しさん
05/03/08 20:31:320371デフォルトの名無しさん
05/03/08 20:41:170372デフォルトの名無しさん
05/03/08 20:53:58ACLはACLで出来ている
0373デフォルトの名無しさん
05/03/08 21:16:10% ls swank*.lisp
swank-abcl.lisp swank-lispworks.lisp
swank-allegro.lisp swank-loader.lisp
swank-backend.lisp swank-openmcl.lisp
swank-clisp.lisp swank-sbcl.lisp
swank-cmucl.lisp swank-source-path-parser.lisp
swank-gray.lisp swank.lisp
0374デフォルトの名無しさん
05/03/08 21:56:040375デフォルトの名無しさん
05/03/09 02:21:040376デフォルトの名無しさん
05/03/09 16:07:21サポートするってかいてあるけど。ttp://common-lisp.net/project/slime/
0377デフォルトの名無しさん
05/03/09 22:41:11俺だけか・・・?
微妙に使いづらいな。
0378デフォルトの名無しさん
05/03/09 22:46:230380デフォルトの名無しさん
05/03/09 23:25:150381378
05/03/09 23:52:10Common Lisp使ってる時点で異端扱いなので変な目で見られるのは慣れてるのだ(w
でもあのレベルのマクロを皆が好き勝手に作り始めたらポータビリティどころの騒ぎじゃ
なくなるような気はする。
0382デフォルトの名無しさん
05/03/10 06:13:09(if predict
□□a
□b)
こうなるんだけど、scheme-modeみたく
(if predict
□□a
□□b)
のように出来ないんディスカー?
0383デフォルトの名無しさん
05/03/10 07:05:10(put 'if 'lisp-indent-function nil)
0384デフォルトの名無しさん
05/03/10 07:09:41ありがとう。
前者のようになっている理由は?
0385デフォルトの名無しさん
05/03/10 08:25:07何でLOOPなんか使うんだゴルァ
LOOPみたいな独り善がりマクロがある限り
CommonLispに発展はない
0386353
05/03/10 11:20:48マイナな中でさらに細かい流派を作って、いがみあってもしょうがないからね。
なるべく寛容になるようにしている。w
複雑なLOOPマクロを書けと言われたらちょと困るけど、読むくらいならなんとかなるし。
(たぶん、、、)
0387デフォルトの名無しさん
05/03/10 16:19:01lisp: (if COND THEN ELSE ...)
scheme: (if COND THEN ELSE)
0388デフォルトの名無しさん
05/03/10 21:50:330389デフォルトの名無しさん
05/03/10 23:04:31elseが複数あるからってことでしょ?
まあ、だからってなんでaだけ下げるんだという疑問はまだ残るが。
0390378
05/03/10 23:13:10前半の前提と後半の帰結の関係がさ〜っぱりわからん。理論立てて説明してみ。
LOOPマクロが繰り返し構造に特化したDSLの様相を呈しているという点で独り善がり
という感想を持つのは理解できなくもないが(しかし委員会で承認され規格化されて
いるという点で独善ではありえない)、その存在とCommonLispの発展とに何の関係が?
0391デフォルトの名無しさん
05/03/10 23:35:25>elseが複数あるからってことでしょ?
ええー
述語ひとつに対してTHEN節とELSE節の他に、
ELSE1…ELSEn節があるって論理的におかしくないか?
0392デフォルトの名無しさん
05/03/10 23:48:24(if COND THEN ELSE1 ELSE2 ...) と書けるってこと。
0393353
05/03/10 23:52:58ええーーーっと思って確かめたけど、Common Lisp は複数の else 句を取れないよね。
初めて知ったが emacs lisp は確かに複数の else 句が取れるんだな。
別に論理的におかしいとまでは思わないけど変わった仕様だね。
0394デフォルトの名無しさん
05/03/10 23:54:48わざわざprognとかでネスト深くする必要がないように。
0395デフォルトの名無しさん
05/03/11 01:20:22それって、括弧の存在、如いてはS式そのものを否定することにならないか?
Lisperは、括弧を惜しみなくばら撒くもんだとばかり思ってたよ。
0396デフォルトの名無しさん
05/03/11 01:36:07(+ 3 (+ 1 (+ 4 (+ 1 5))))
だって
(+ 3 1 4 1 5)
と書けるじゃないか
だからといってどうといったことはない
0397デフォルトの名無しさん
05/03/11 04:09:39順風満帆といきたいねえ
0398デフォルトの名無しさん
05/03/11 04:29:340399デフォルトの名無しさん
05/03/11 04:39:320400デフォルトの名無しさん
05/03/11 12:40:30ちなみに Common Lisp は scheme と同じ (if COND THEN [ELSE]) なわけだが、
ELSE を複数書ける Lisp って Emacs Lisp 以外にあるの?
0401デフォルトの名無しさん
05/03/11 12:50:25つまり、MacLispとか?なんか昔はいろいろなLispがあったらしいし。
CommonLispはSchemeの影響もかなり受けてるしな。
最近のLispがELSE一つなんじゃないかと。
0402デフォルトの名無しさん
05/03/11 13:17:30MacLisp には if は無かったみたい。
http://zane.brouhaha.com/~healyzh/doc/lisp.doc.txt
Common Lisp 以前の「伝統的なLisp」では if よりも cond が基本だったし、ELSEが複数
書けるというのは Emacs Lisp のローカルルールではないかと思うのだが。
0403デフォルトの名無しさん
05/03/11 16:11:16http://www.bitsavers.org/pdf/mit/cadr/
Symbolics でも同様だったと思う。
0404デフォルトの名無しさん
05/03/12 02:27:01(let ((counter 0))
(defun inc ()
(setq counter (+ counter 1)))
(defun reset ()
(setq counter 0)))
こういう内部状態を持つ関数の話が出てきて、Schemeに書き換えようと思ったんだけど
defineはlet式の内部で使っても外から見えないから、
上のCommon Lispの例のdefunをdefineに書き換えただけじゃうまくいかない。
Common Lispの例みたいに共通の環境情報にアクセスできる複数の関数の上手い書き方ってないかな。
(define count
(let ((counter 0))
(lambda (option)
(if option
(lambda ()
(set! counter (+ counter 1)))
(lambda ()
(set! counter 0))))))
(define inc (count #t))
(define reset (count #f))
これじゃちょっと格好悪いよね…
0405デフォルトの名無しさん
05/03/12 03:12:31(define reset #f)
(let ((counter 0))
(set! inc (lambda () (set! counter (+ counter 1))))
(set! reset (lambda () (set! counter 0))))
0406デフォルトの名無しさん
05/03/12 05:31:54(let ((counter 0))
(values (lambda () (set! counter (+ counter 1)))
(lambda () (set! counter 0)))))
0407デフォルトの名無しさん
05/03/17 09:14:18で、このスレ的にはLISPで何が出来ればいいのだろう?
サーバサイド、DB、XMLや、環境としてWindowsで、こんなところなのだろうか?
0408デフォルトの名無しさん
05/03/17 13:09:540409デフォルトの名無しさん
05/03/17 14:41:00ワロタw
人工知能にすら使えるほどの高級言語なら、業務システムを記述する
ことは易い。
0410デフォルトの名無しさん
05/03/17 20:22:18かと思った。
0411デフォルトの名無しさん
05/03/17 23:55:460412デフォルトの名無しさん
05/03/17 23:59:03それだ!
0413デフォルトの名無しさん
05/03/18 01:44:25誰か持ってない? ただアーカイブぶちまけてconfigure, make, make installする
だけなんだけも。ASDF慣れちゃうとmakeが面倒になってきくるけど、Lispオンリーで済む
状態でなくなったときにふとどうしたものかと悩んでしまう今日この頃。
0414デフォルトの名無しさん
05/03/18 05:40:36でも中のmakefileがLinuxに依存したものになってる場合があって
辟易するんだよなー。Makefileの書式とかコマンドのパスとかさ。
署名前提だから適当に手元で改変して食わせるというのもちょっと手間がいるし。
というわけで例としてはUFFIがあるけど上記の点をよろしくおながいしますm(_ _)m
0415413
05/03/20 00:34:40サンクス。uffi-tests.asd非常に参考になりました。
ってか自分でASDFのソース読みながらこんな使い方でいいのかな思いながら書いてた
ところに上の情報もらったんで、結果的に他の人の使い方も見てダブルチェック。
自分で好きなようにカスタマイズできてASDFって実にイィ!!ですね。
署名前提ってのはasdf-installのことだよね。cCLan最近見てないけど変化あった?
0416デフォルトの名無しさん
05/03/20 00:49:04gosh> "日本語"
*** ERROR: unhandled signal 2 (SIGINT)
Stack Trace:
_______________________________________
0417デフォルトの名無しさん
05/03/20 00:53:030418デフォルトの名無しさん
05/03/20 00:54:04受け付けてくれるyo!!
% gosh -V
Gauche scheme interpreter, version 0.8.3 [euc-jp]
% gosh
gosh> (string-length "はげ")
2
0419デフォルトの名無しさん
05/03/20 17:52:38common lisp emacs
# 需要は、それなりにあるんじゃないかな。
# hemlockは、あまり、うまくいってないようだし。
0420デフォルトの名無しさん
2005/03/25(金) 01:36:490421デフォルトの名無しさん
2005/03/25(金) 09:22:09どうやんだよ?
0422デフォルトの名無しさん
2005/03/25(金) 09:24:058
0423デフォルトの名無しさん
2005/04/09(土) 13:53:42(defun func()(print "func"))->func
という適当な関数を定義してバイトコンパイルしたものを
VC++から呼び出すとか出来ます?パイプでもなんでもいいんですが、
出来ますか?
0424デフォルトの名無しさん
2005/04/09(土) 18:12:460425デフォルトの名無しさん
2005/04/09(土) 18:28:350426デフォルトの名無しさん
2005/04/09(土) 18:29:230427デフォルトの名無しさん
2005/04/09(土) 20:48:02やり方を教えておくれ、詳しく、たのむ
0428デフォルトの名無しさん
2005/04/09(土) 21:26:490429デフォルトの名無しさん
2005/04/10(日) 00:43:550430デフォルトの名無しさん
2005/04/10(日) 02:35:070431デフォルトの名無しさん
2005/04/10(日) 12:30:06いまいちわからんな〜
0432デフォルトの名無しさん
2005/04/10(日) 14:52:56clisp_eval_string("(eval '(hello world))");
みたいなやつ。
0433デフォルトの名無しさん
2005/04/10(日) 15:35:00みたいにやればいいじゃん。pipe使えばさらにかっこいいぞ。
0434デフォルトの名無しさん
2005/04/10(日) 15:41:28リファレンス参照したが、どうにも解らん。たのむよ〜
0435デフォルトの名無しさん
2005/04/10(日) 17:18:430436デフォルトの名無しさん
2005/04/10(日) 19:16:55ありがとう、ちょっとやってみるよ。
目標はJAVAから呼ぶこと。
0437デフォルトの名無しさん
2005/04/10(日) 23:55:31Process process = Runtime.getRuntime().exec(command);
InputStream is = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
clispを呼び出すまではできたんだけどね、出力する方法が分からん。
(当初の目的は、単純にclispの関数を呼び出すだけだったんだけどな〜)
0438デフォルトの名無しさん
2005/04/11(月) 00:05:10(ちょっとスレ違いになるが)
process.getOutputStream() して取得したストリームに書き込めば、それがlisp.exeの
標準入力になる。やはりBufferedWriterをかぶせるのが良いがflushを忘れぬようにな。
0439デフォルトの名無しさん
2005/04/18(月) 19:31:51ptester が手軽でいいなと思うんだけど。
0440デフォルトの名無しさん
2005/04/18(月) 21:56:480441デフォルトの名無しさん
2005/04/18(月) 22:05:510442デフォルトの名無しさん
2005/04/18(月) 22:33:32最近出版された Practical Common Lisp の中でも数十行で作ってたからな。
でも、 Common なテストフレームワークが欲しくないですか?
0443デフォルトの名無しさん
2005/04/19(火) 20:25:560444デフォルトの名無しさん
2005/04/24(日) 20:53:29いまいち使い方が分からん。
0445デフォルトの名無しさん
2005/04/25(月) 06:56:03疲れた。寝る。
0446デフォルトの名無しさん
2005/04/25(月) 20:30:59ちょっと古いけどslime 1.2あげ。
0447デフォルトの名無しさん
2005/04/25(月) 21:49:16こらこらこら。捏造イクナイ。ところで、あがってないよ。
0448デフォルトの名無しさん
2005/04/25(月) 23:01:36http://sourceforge.net/project/showfiles.php?group_id=1373&package_id=1354&release_id=322932
http://common-lisp.net/project/slime/
0449デフォルトの名無しさん
2005/04/25(月) 23:29:47よく見れ。
0450デフォルトの名無しさん
2005/04/25(月) 23:34:04Javaのクラス名との対応さえとれてしまえば後は楽勝だった記憶があるんだが。
0451デフォルトの名無しさん
2005/04/25(月) 23:40:20いいじゃん。
日本ではSBCLはSoft Bank Common Lispと読むんだよ。
0452デフォルトの名無しさん
2005/04/25(月) 23:53:00Oh! SBCL っつー月刊誌を出したら認めてやる
0453デフォルトの名無しさん
2005/04/26(火) 07:13:44いや使い方がまったくのってないんで、さっぱりわからん。
Lispからjavaを呼びのはなんとかなってんだが、javaからLispを
呼ぶ方法が情報皆無。
こうなったらACL買ってサポートで情報吐かせるしかないなぁ〜〜。
0454デフォルトの名無しさん
2005/04/26(火) 11:14:09tryjtol.cl
ってのが./examples/jlinker/basicにあるけど・・・(ACL7 Enterprise)
0455デフォルトの名無しさん
2005/04/26(火) 14:01:53うむ。それを試そうとしてはまっている。
jlinker-initがないといわれる。
jlinker.faslの中で定義されてないのか、と思案中。
ちなみに、ACL7 Enterpriseって幾ら位するの?
10万ていどなら茄子で買う。
0456デフォルトの名無しさん
2005/04/26(火) 22:32:17使うハズだから、JavaからLisp呼ぶときだけうまく行かないって何かが変だと思う。
価格は過去スレにあった気がする。とても個人じゃ買えない。
0457デフォルトの名無しさん
2005/04/26(火) 23:40:05(jlinker-init)でエラーになるんだよな〜。所詮Trialということかな。
>価格は過去スレにあった気がする。とても個人じゃ買えない。
マジで?
そうか、普通に7のProfessionalでも買うかな。まぁ10万強ぐらいだろう、多分。
これってProfessionalってネイティブコンパイルできたっけ??
0458デフォルトの名無しさん
2005/04/27(水) 00:23:16微妙に違うんでしょうね。6.2持ってないので確認できないですが。
Professionalでもネイティブコードにコンパイルはできます。ってTrialでもできて
ますよね?作成したアプリケーションの配布とかMySQL/Oracle Directが付いてないとか
いう点が異なってたと記憶してますが詳細はFranz Inc.に直接確認してください。
頼めばProfessionalで十分かどうか確認するために評価ライセンスも発行してもらえると思います。
0459デフォルトの名無しさん
2005/04/27(水) 00:32:47ますよね?
勇気を持って言おう!!
・・・知らなかった。マジで知らなかったorz
試しに適当なプロジェクトをコンパイルしたらなんかEXEが出来てた。
いや〜なんつーか奥が深いねACLは。ちょっと首つってくるわ。
0460デフォルトの名無しさん
2005/04/27(水) 22:51:13VCみたいにDOS窓で動作するEXEは無理みたいだな〜。
生成されたDLLからLispの関数名を抜き出して使おうかと思ったが、
dependencywalkerでも関数名もなにも出てこない。
きついのう。
0461デフォルトの名無しさん
2005/06/02(木) 01:21:340462デフォルトの名無しさん
2005/06/02(木) 17:05:340463デフォルトの名無しさん
2005/06/05(日) 01:03:21そんなことは出来ん
0464デフォルトの名無しさん
2005/06/05(日) 01:05:39出来んじゃないの?
Win で出来るかは知らん
0465デフォルトの名無しさん
2005/06/05(日) 01:14:29スマン、出来た
0466デフォルトの名無しさん
2005/06/05(日) 01:16:380467デフォルトの名無しさん
2005/06/05(日) 06:55:37できれば日本語、ないなら英語でもいいや。
0468デフォルトの名無しさん
2005/06/05(日) 10:25:270469デフォルトの名無しさん
2005/06/05(日) 11:19:230470デフォルトの名無しさん
2005/06/05(日) 14:06:22CommonLisp/Schemeスレは別に存在する
0471デフォルトの名無しさん
2005/06/05(日) 14:08:28マクロのことは入門Schemeとかにのってないのかな?
0472デフォルトの名無しさん
2005/06/05(日) 14:26:42そういう変な人の相手をしたくなかったら本スレでやったほうが良いかも
それでもここで続けるというのなら別に止めはしない
0473デフォルトの名無しさん
2005/06/05(日) 14:46:39このスレでやる理由は何もない。やめてほしい。
0474デフォルトの名無しさん
2005/06/05(日) 16:22:36このスレだったか、もう一個のスレだったか忘れたけど、
本スレで Common Lisp の質問をしても、Scheme で返事が
返って来る事が多いのは S/N 比が悪いってことで立てられた
経緯があるから、Scheme ネタは宜しくないだろう。
わざわざ波風立てたい理由が分からん。
0475デフォルトの名無しさん
2005/06/05(日) 20:15:45S/N比とかいってるアフォは、>>6だろ
しかしこのスレもあんまCommonLisp特有の話って続かないな
ちらほらSchemeの話にそれたりする
ところで、
【一日】CommonLisp【一門】
http://pc8.2ch.net/test/read.cgi/tech/1106587515/
こっちは放置か?
0476デフォルトの名無しさん
2005/06/05(日) 20:30:41CommonLispはただのLisp属の1つという扱いだったんだが、
いつかの馬鹿がLisp->CommonLispに勝手に限定しやがった。
これはPart9か10辺りの出来事。
まあ、それでもCommonLispの話はほとんどされた覚えはないが。
相変わらずScheme寄りな本スレを見切ったのか、結局は
CommonLisp専用スレいくつか立って去っていったな。
そろそろ本スレは「Lisp Scheme」に戻そうかw
0477デフォルトの名無しさん
2005/06/05(日) 20:40:40わざわざ波風立てたい理由が分からん。
0478デフォルトの名無しさん
2005/06/05(日) 20:56:55Lispよりも波風が好きなんだろう
0479デフォルトの名無しさん
2005/06/05(日) 21:10:55その辺の話は本スレの次スレ立てるときにでもまたしてもらえるとありがたい。
CommonLisp専用スレがあるんだから、もうどっちでもいいと言えばいいよ。
0480デフォルトの名無しさん
2005/06/05(日) 21:12:39CommonLispも同じ道を辿れればいいね。
0481デフォルトの名無しさん
2005/06/05(日) 21:21:27大した違いは無いのに、何がこうさせるんだろう…
0482デフォルトの名無しさん
2005/06/05(日) 21:27:30漏れは本スレも読んでいるが、ここはCommon Lispのスレなのだから
Schemeのマクロ(Common Lispのマクロとは大きく思想が異なる)の
話題はよそでやるのが当然だと思う。
これは仲悪いとかの問題ではない。
0483デフォルトの名無しさん
2005/06/05(日) 23:26:350484デフォルトの名無しさん
2005/06/06(月) 16:02:410485デフォルトの名無しさん
2005/06/06(月) 21:28:37出典:2chってちゃんと書けよw
0486デフォルトの名無しさん
2005/06/07(火) 08:04:050487デフォルトの名無しさん
2005/06/07(火) 18:52:10http://www.scheme.com/tspl3/
が英語だけど、比較的詳しい。 あと、MzSchemeかDrSchemeの真乳有るあたりかな。。
0488デフォルトの名無しさん
2005/06/12(日) 21:10:08Practical Common Lispの24章、25章あたりをざっくり読んでこうやってマクロは組み立てて
行くものなのかと感心しているところなのですが、ちょっと応用しようと思ったらすぐに方法が
わからなくてハマりましたので助けていただきたく。
やりたいことはdefine-binary-classとかのマクロでビットフィールドを持つ構造を扱いたいの
ですが・・・どの辺から発展させていったらいいんですかね?
一回のI/Oで複数個のスロットに値を配るのはできそうなんですが、その為の構文をどう設計する
べきかで悩んでます。無理にマクロにしないで泥臭く書いて行けばできるのは間違いないんですけど。
0489デフォルトの名無しさん
2005/06/12(日) 21:30:59何に悩んでるかよくわからないけど、構文としては :bytes で指定するバイト数
の代わりに :bits でビット数を指定するみたいな具合にすればいいんじゃない?
0490488
2005/06/12(日) 21:54:40マクロ側でいまストリームの何バイト目の何ビット目まで読んだ、みたいに自前で管理すれば
いいんですかね。
身近にLisp使いがいないんで、この本に出会うまで実際のコーディング上のノウハウみたいなの
知る機会がなかなか無くて随分と損した気がします。
0491デフォルトの名無しさん
2005/06/12(日) 21:59:26まずビット単位でI/Oできるストリームみたいなのを構築(当然この中でバッファリング
する必要があるだろう)して、その上に作るのがいいんじゃないかな。
マクロにするかどうかというのは本質ではない気がする。
0492488=490
2005/06/12(日) 22:11:23本質ではないという意見も理解できるのですが、この章を読んでいてPaul Grahamが書いてる
ような「ミニ言語を作ってその言語を使ってプログラミングする」っていうのはこういうことかと
何となくわかったような気がしたのですよ。
逆に、いままでLispで自分流に書いて来たコードって全部「マクロ展開後」の結果をひたすら
書いて来たように感じました。それでもEmacsの中でちょいちょい変更してはテストしながら
やっていたのでC/C++/Javaよりは気楽に書いてましたけど(主観ですが)。
0493デフォルトの名無しさん
2005/06/12(日) 22:16:13バイト単位とかビット単位とかという議論に対しては、という話ね。
ま、気楽にやりましょ。w
0494488=490=492
2005/06/12(日) 22:32:46ですね。
で、こっちなんですが >>まずビット単位でI/Oできるストリームみたいなのを構築
参考になりそうなドキュメントとかご存知ないですか?何でもかんでも自分で作っちゃうのが
Lisp屋さんの流儀みたいですが全然技量的に到達できそうもない今日この頃・・・
0495デフォルトの名無しさん
2005/06/20(月) 06:57:400496デフォルトの名無しさん
2005/06/20(月) 07:16:070497デフォルトの名無しさん
2005/06/20(月) 07:19:17http://www.lisp.org/HyperSpec/Body/sec_24-1-2-1-1.html
http://www.lisp.org/HyperSpec/Body/sec_2-4-8-17.html
http://www.lisp.org/HyperSpec/Body/sec_2-4-8-18.html
0498デフォルトの名無しさん
2005/06/20(月) 20:40:220499デフォルトの名無しさん
2005/06/21(火) 07:10:590500デフォルトの名無しさん
2005/06/22(水) 02:59:250501デフォルトの名無しさん
2005/06/22(水) 03:06:210502デフォルトの名無しさん
2005/06/22(水) 03:10:51SBCLならかなり前からサポートされている
0503デフォルトの名無しさん
2005/06/27(月) 12:49:24既存の関数名に別名をつけたい場合(nreverse に my-nreverse とつけるなど)、
Common Lisp ではどう書くのが良いんでしょうか?
0504デフォルトの名無しさん
2005/06/27(月) 14:02:550505デフォルトの名無しさん
2005/06/27(月) 14:20:09何かもっと良い書き方があるのかなと。
0506デフォルトの名無しさん
2005/06/28(火) 00:18:100507デフォルトの名無しさん
2005/06/29(水) 00:16:540508デフォルトの名無しさん
2005/06/30(木) 10:20:04んではないかと疑ってるのだが。
0509デフォルトの名無しさん
2005/07/02(土) 16:20:120510デフォルトの名無しさん
2005/07/02(土) 18:20:15うん
0511デフォルトの名無しさん
2005/07/02(土) 19:15:29どうもです
0512デフォルトの名無しさん
2005/07/02(土) 21:51:400513デフォルトの名無しさん
2005/07/03(日) 17:35:10(al-reverse'(a(b c)(d(e f))))
と与えたら((((f e)d)(c b)a)となり
中身が全て反転するような関数al-reverse
を定義するにはどうすれば良いのでしょうか?
0514513
2005/07/03(日) 18:23:180515デフォルトの名無しさん
2005/07/12(火) 05:17:03普段使っている、lispアプリhogeがあって、
そのhogeをロードした後、必ず実行する関数(hoge-init)があるとします。
で、
(defun hoge-starter ()
(load "hoge")
(hoge-init))
の様な関数を、lispの起動時に読み込まれる初期化ファイル(.init.lisp)に
定義したいのですが、この定義をしてlispを起動すると、
`undefined function: hoge-init'
と、警告がでてしまいます。
この警告を消したいのですが、どのようにすれば良いでしょうか?
eval-when を使うのかと思って試したのですが、うまくいきませんでした。
0516デフォルトの名無しさん
2005/07/12(火) 09:42:48まず使っている処理系や環境を書くように。
0517デフォルトの名無しさん
2005/07/12(火) 11:17:36(defun my-reverse (l)
(cond ((null l) nil)
(t (append (my-reverse (cdr l)) (list (car l))))))
リスト内にもreverseをかけるべく再起処理を施したいのですが,
なかなか出来ません,お願いします.
0518デフォルトの名無しさん
2005/07/12(火) 12:24:490519デフォルトの名無しさん
2005/07/12(火) 13:08:000520デフォルトの名無しさん
2005/07/12(火) 13:31:40おまいの大学の奴らだったのかw
0521デフォルトの名無しさん
2005/07/12(火) 13:44:40お前もこのスレッド見ている時点でやれやれだなぁ.
0523デフォルトの名無しさん
2005/07/12(火) 15:26:05見ているだけならいいんじゃね?
宿題を代わりにやってもらうってのはダメだが
0524デフォルトの名無しさん
2005/07/12(火) 16:29:190525デフォルトの名無しさん
2005/07/12(火) 16:44:220526デフォルトの名無しさん
2005/07/14(木) 11:59:58がわからなかったのだけど、やっと分かった。宿題を丸写しするためだったの
か!Common Lisp と Scheme の違いが分からないのなら、そりゃ混ざってちゃ
困るよなあ。了解しました。
◆「Lispに関する次の問いに答えよ」m(__)m
http://mentai.2ch.net/infosys/kako/977/977477880.html
↑のスレの1はさらに上を行く勇者で、Lisp と Ruby の違いも分からない。
まあ、別に悪いことだとは思わないけれど。私も興味のない科目はそんな風だっ
たし。
0527デフォルトの名無しさん
2005/07/14(木) 13:54:12わらた。
0528デフォルトの名無しさん
2005/07/21(木) 05:48:460529デフォルトの名無しさん
2005/07/21(木) 09:08:55ノシ
0530デフォルトの名無しさん
2005/07/21(木) 23:47:57ノシ
0531デフォルトの名無しさん
2005/07/23(土) 03:57:57俺のACLではloadできない
0532デフォルトの名無しさん
2005/07/24(日) 21:42:190533デフォルトの名無しさん
2005/07/24(日) 21:42:530534デフォルトの名無しさん
2005/07/24(日) 22:35:57よく質問の意味がわからんが、関数内で任意のz(関数内で使われていない変数)を
定義して、それを値として使えは良いのではないのか?w
0535デフォルトの名無しさん
2005/07/25(月) 16:35:07説明が下手でサマソ。
なんというか、例えば全部のアルファベットを受け取ったときにも
まだ未使用のアルファベットとして定義して、そいつを値にしたいんだ
そんなことって可能なのか?
0536デフォルトの名無しさん
2005/07/25(月) 18:33:080537デフォルトの名無しさん
2005/07/25(月) 18:42:190538デフォルトの名無しさん
2005/07/25(月) 23:54:43プログラムはどうつくればいいですか?
0539デフォルトの名無しさん
2005/07/26(火) 00:03:56最小値を求めるプログラムを書く。
二回走査するのがいやだったら
走査は一回にして最大値と最小値をリストにしてapply
0540デフォルトの名無しさん
2005/07/26(火) 02:35:34>>538 いいか,若いの.問題の定義がよくわからんが,考え方をおしえてやろう.
お前さんは
(欲しい関数 リスト1 リスト2) => (/ リスト1の最大値 リスト2 の最小値)
としたいわけだ?ならそう書けばよい.
(defun 欲しい関数 (リスト1 リスト2)
(/ リスト1の最大値 リスト2の最小値))
一度に考えるな.すぐにわからんものは関数にしてしまえ.
(defun 欲しい関数 (リスト1 リスト2)
(flet ((リスト1の最大値 ()
...)
(リスト2の最小値 ()
...))
(/ (リスト1の最大値) (リスト2の最小値))))
さて,こうすると,除算の問題はもう解けた.あとは
リスト1の最大値, リスト2の最小値という小さな問題を解くだけだ.
さて,日本語だと通らない処理系もあるから,↓のようにしよう.
(defun answer (list1 list2)
(flet ((max-of-list1 ()
...) ;; list1 の最大値を求める
(min-of-list2 ()
...)) ;; list2 の最大値を求める
(/ (max-of-list1) (min-of-list2))))
なに?授業を聞いてないしやる気もないから最大値も最小値も求められない?
そうだね, (apply #'max list1) や (apply #'min list2) でいいんじゃないか?
0541デフォルトの名無しさん
2005/07/26(火) 03:14:00progは習ったがfletはやってねー
ま、8クイーン頑張れよw
0542デフォルトの名無しさん
2005/07/26(火) 05:47:40何か具体的にやりたいことがあるんでしょうから、
具体例を出しちゃった方が話が早いと思いますよ。
>>541
prog って使ったことないや。
tagbody つきの let みたいなんでしたっけ。
0543535
2005/07/26(火) 18:02:54その通りです。
では、具体的な話。
λ計算中に現れる[lexp1/x]lexp2を表現する関数
(defun substitution (x lexp1 lexp2))の中で
x≠yかつφ(E)∋x、φ(Q)∋yをどちらも満たすなら
任意のλ式E、任意のz(ただしzはx≠z≠yかつ
(E)Qの自由変数でも束縛変数でもない)に対して
[Q/x]Ly.E → Lz.[Q/x]{z/y}E
って書き換えたいんです。
ここで、Lx.Ly.(y)xは(L x L y (y) x)と表現します。
0544535
2005/07/26(火) 18:04:300545デフォルトの名無しさん
2005/07/26(火) 18:10:14相変わらず説明は下手だなぁ。gensymじゃ駄目なのか?
0546535
2005/07/26(火) 18:27:20鬼 才 現 る !
すいませんでした。
>>537でも書き込んでいただいていたみたいなのにスルーしてましたorz
そんな関数が存在していたとは・・・知りませんでした。
ありがとうございました!
0547538
2005/07/26(火) 20:39:51説明ありがとうございますm(_ _)m
やってみます。
0548デフォルトの名無しさん
2005/08/07(日) 00:16:00EmacsLispやSchemeの初心者レスはすれ違いでしょうか?
0549デフォルトの名無しさん
2005/08/07(日) 00:20:37うん。スレ違い。
このあたりかな。
http://pc8.2ch.net/test/read.cgi/tech/1115901841/
0550デフォルトの名無しさん
2005/08/08(月) 01:12:30(defun func (x)
(setq x 2))
(setq a 1)
(func a)
などとして、グローバルな変数をfuncの引数にして呼び出した時に
そのグローバル変数自体が書き換えられるような、
C言語で例えるならポインタ引数のような使い方をするには
どうすればいいのでしょうか?
0551デフォルトの名無しさん
2005/08/08(月) 01:20:580552デフォルトの名無しさん
2005/08/08(月) 01:28:25関数に渡すのはシンボルね。
0553デフォルトの名無しさん
2005/08/08(月) 01:52:21(defmacro macro (x)
`(setq ,x 2))
(setq a 1)
(macro a)
a
=> 2
0554550
2005/08/08(月) 04:02:54(func a) の後はaの値は2になっているはずですよね?
でもトップレベルでsetqした値、つまり1になっています…
ここでどうにかaを2にしたいんですが…
質問の仕方が悪いのかもしれません、すみません
0555550
2005/08/08(月) 04:04:46seqじゃなくてsetを使うとできました。お騒がせしました…
とても助かりました。命の恩人です。
0556デフォルトの名無しさん
2005/08/08(月) 04:39:290557デフォルトの名無しさん
2005/08/08(月) 11:44:30わろす
0558デフォルトの名無しさん
2005/08/19(金) 04:41:05JPEGを扱うにはどうしたらいいのでしょうか。
いいライブラリがあったら紹介ください。
0559
2005/08/19(金) 09:05:280560559
2005/08/19(金) 09:20:57(subseq "hoge" 0 2)
"ho"
で出来た。色々変わったのかね
0561デフォルトの名無しさん
2005/08/25(木) 04:45:03(mapcan #'(lambda (x)
(cond
ここまでおもいだした
0562デフォルトの名無しさん
2005/08/25(木) 06:02:14srfi-1 でいう filter-map?
0563デフォルトの名無しさん
2005/08/26(金) 01:30:58(cond ((predicate x) (list x))
(t nil))
list)
predicateがoddpでlistが'(0 1 2 3 4 5) なら '(1 3 5)が返る
0564デフォルトの名無しさん
2005/08/26(金) 02:09:00=> (1 3 5)
0565デフォルトの名無しさん
2005/08/26(金) 02:26:56http://www.google.co.jp/search?q=remove-if-not+deprecated
(remove-if (complement #'oddp) '(0 1 2 3 4 5))
と書くそうだ。
0566デフォルトの名無しさん
2005/08/27(土) 03:33:37remove-ifはなんだか収集という感じがしない
mapcanにできてremove-ifにできなさそうなものを考えてみる
0567デフォルトの名無しさん
2005/08/29(月) 12:07:23選別収集を言い換えればつまりはいらないものを捨てるってことだろうし。
remove-ifでもlambdaつかえば結局同じことだと思うけれど。
0568デフォルトの名無しさん
2005/08/30(火) 02:11:36(mapcan #'(lambda (&rest x) (if (every pred x) x nil)) list) みたいに。
つか、実装の詳細は措いて、mapcan で書き下したもの(の限定版)に
名前をつけたもんがremove-if(-not) なんじゃないかいな。
0569名無しさん@そうだ選挙に行こう
2005/09/11(日) 21:38:55Apacheから直接PHPとかPerlみたいにはできないんでしょうか?
mod_lispとかlispachとかgocheとかはネットで調べたんですが、
なんとなくすっきりしません。
やっぱ自分で作るしかないのかな?
0570名無しさん@そうだ選挙に行こう
2005/09/11(日) 23:01:59> なんとなくすっきりしません。
詳しく
0571デフォルトの名無しさん
2005/09/12(月) 12:46:48表にApache建てたいならmod_proxyで。
0572デフォルトの名無しさん
2005/09/12(月) 23:20:06直接ApacheのAPIを操作できるようにならないかということです。
>>571さん、なんとなくすっきりしないといったのは、
こういったApacheから何かを介してLispへアクセスするというのが、
私にとっては違和感がありまして…。
最近になってプログラミングをやりだしたものですので、
変なこと言ってるかもですが、
Apacheを使ってsoapとかのWebserviceのxmlを読み込み、
Routerのようにできないかなと思ってまして。
もちろん他の言語でもできるのですが。。。
こんなLisp初心者にご解答ありがとうございます。
0573デフォルトの名無しさん
2005/09/26(月) 03:17:10大学近くの古本屋を回ってもあんまり理工書がないんですが
0574デフォルトの名無しさん
2005/09/26(月) 12:07:11昔のアスキーのCプログラムブックIIIは独自LISP処理系扱ってるけど
今風の実装じゃないし
個人的には末尾再帰できない独自LISPはあんま魅力ないな
自分で作るならSchemeの方がいい
0575デフォルトの名無しさん
2005/09/26(月) 12:11:52末尾再帰の実装なんて普通のLispでもさほど難しくはない。Schemeは
full continuationの実装など悩む割に報われない部分で苦労する。
まぁ作ってみるだけなら面白いけど、実用的な処理系は結構大変。
0576デフォルトの名無しさん
2005/09/26(月) 12:14:500577デフォルトの名無しさん
2005/09/26(月) 12:17:57おまえスレタイ読めるのか?
スキームの宣伝は他でやれよ。
0578デフォルトの名無しさん
2005/09/26(月) 12:20:35別に無くてもなんとかなるレベルでしょ
ただし末尾再帰は無いとコーティングスタイルにまで影響する
最適化の余地があるCommonLispならともかく、
独自LISPにはもう期待できる事が何も無い
0579デフォルトの名無しさん
2005/09/26(月) 12:23:36スキームの宣伝て何?
おまえこそちゃんとレス読めよダボが
0580デフォルトの名無しさん
2005/09/26(月) 12:28:57はぁ?
> 最適化の余地があるCommonLispならともかく、
> 独自LISPにはもう期待できる事が何も無い
何か言ってる意味わかんねよ。
Common Lisp系の独自LISPとかイメージできないの?
0581デフォルトの名無しさん
2005/09/26(月) 14:26:44イミフメ
0582デフォルトの名無しさん
2005/09/26(月) 21:57:00ちなみに漏れは580の言ってることは理解できる派ね。まぁただでさえマイナーな言語に
関わってる者同士マターリと行こうや。
0583デフォルトの名無しさん
2005/09/27(火) 01:25:11俺も継続は無くても良いけど、末尾再帰の最適化は欲しいなぁ。
0584デフォルトの名無しさん
2005/09/27(火) 01:36:27以前話題になった気がするけど、Common Lispにおける末尾再帰の最適化は、
・インタプリタはほとんどの処理系がやらない
・コンパイラはほとんどの処理系がやる
という結果だったと思う。Common Lisp的思想からすれば順当なところだろうね。
0585デフォルトの名無しさん
2005/09/27(火) 02:42:55末尾再帰の最適化はメリットばかりじゃねーんだぜ?
インタプリタ上では *常に* 最適化されちゃったらデバッグしにくいだろ?
Common Lisp 的思想なら,コンパイル時の最適化オプションで
制御できるほうが嬉しい.
末尾再帰の最適化を示すオプションが欲しいって話もあるけどな.事実上,
speed 3 とか debug 0 にしとけばほとんどのコンパイラがやってくれっからねぇ.
0586デフォルトの名無しさん
2005/09/27(火) 11:44:41> インタプリタ上では *常に* 最適化されちゃったらデバッグしにくいだろ?
これはスタックトレースが取れないとかそういう意味?
0587デフォルトの名無しさん
2005/09/28(水) 02:18:03CL 派としては c.l.l で出てた宣言的アプローチで解決してほしいなー.
「可能な限り最適化する」「自己呼び出しとローカル関数のみ最適化」「自己呼び出しのみ」「最適化なし」
とかが宣言できるみたいな.まぁ,現状はコンパイラのマニュアルを見る必要
があるわけだけど,それで不都合あるのかっつーはなし.Common Lisp におけ
る末尾再帰の最適化はだってほぼ標準だしね.
0588デフォルトの名無しさん
2005/09/28(水) 02:22:10結局Common Lispの仕様の問題になるわけだよな。20年間にわたって仕様が安定
している(ANSIでわずかに変更されたところもあるが)のは利点でもあるわけだが、
そろそろ次期規格の話が出てきても良いように思う。
0589デフォルトの名無しさん
2005/09/28(水) 09:10:110590デフォルトの名無しさん
2005/09/28(水) 14:17:11見えなくなるというか、全部継続へのジャンプに見えて来るんだよな。
それに関数とブロック(let)が頭の中でブレンドされて区別されなくなる。
そうすると自己末尾呼び出しだけ特別扱いしたりするのがとても不自然に
感じる。
まあ、Common Lispの空気に合わないってのはわかる。CLで書くときは
スタイルが変わるからな。
0591デフォルトの名無しさん
2005/09/29(木) 01:15:480592デフォルトの名無しさん
2005/09/29(木) 03:42:33仕様の問題ねぇ.改善の余地(個人的希望は >>587 な)があるとは思うが,
Scheme が The Right Thing だとは思わない.なぜなら,俺には区別したい
時があるからだ.最適化する,しないは選択したい.まぁ,その選択肢が
存在するのが不自然だと言われりゃしょうがねーけどなぁ.
ま,CL にも末尾再帰の最適化は実装依存だが,「ある」という事を言って
おきたかったわけ.
0593デフォルトの名無しさん
2005/09/30(金) 19:03:530594デフォルトの名無しさん
2005/09/30(金) 23:27:09自作すれば。
↓雛型
(())
0595デフォルトの名無しさん
2005/09/30(金) 23:31:510596デフォルトの名無しさん
2005/09/30(金) 23:36:49λ
0597デフォルトの名無しさん
2005/10/01(土) 00:34:23なんてどうだ
0598デフォルトの名無しさん
2005/10/01(土) 01:19:05CommonLispで以下の相互再帰がループになる保障があるってわけじゃないでしょ?
こういうとこで根本的にコーティンングスタイルに関わってくるわけ。
(defun f(a) (g a))
(defun g(a) (h a))
(defun h(a) (f a))
(f f)
Schemeでトレースしたけりゃ末尾再帰の最後に適当な置石すりゃいいだけだし。
既存の処理系にも普通にバックトレースぐらい存在してるでしょ。
0599デフォルトの名無しさん
2005/10/01(土) 01:28:56言いたいことはわかるけど、だからCommon Lispは駄目、Schemeが良い
という話をしたいのであればスレ違い。そもそもここはCommon Lispのスレ
なので、もうちょっと建設的に考えてほしい。
例えばCommon Lispで末尾再帰を強制するようなdeclareを提案するとか。
あと、念のために言っておくと相互再帰をループ化する最適化はさほど
難しくはないので多くの処理系がやっているはず。
0600デフォルトの名無しさん
2005/10/01(土) 01:51:26あのな、CommonLispをどうこうしようってんじゃなくて、>>573の回答として
独自LISP勉強して作るぐらいならScheme作っとけって話。
CommonLispがどこまで最適化できるとか云々は別に興味ない。
0601デフォルトの名無しさん
2005/10/01(土) 01:55:45そりゃ環境を問わずあらゆるCL処理系で動く必要のあるコードとかいうなら
仕方がないけど。元々の方向性が違うんだから仕様の問題というよりは
そういうスタイルでCLを選択する方が間違ってるんでは。
ちゃんと末尾再帰を最適化する処理系を使えばいい話でしょ?
相互再帰だろうが末尾再帰だろうが基本的に違いはないよ。
cmuclでも、declareも何もせずにreplからそのままdefunして直ぐにdisassemble
しても、ちゃんとジャンプになってるよ。
0602デフォルトの名無しさん
2005/10/01(土) 02:10:36別に>>573氏はおまえが使う処理系を作ろうというんじゃないと思うぞ。w
おまえの好むScheme的スタイルをCommon LispスレでLISPの処理系でも
作ってみようかという奴にしつこく言う必要はあるまい。
0603デフォルトの名無しさん
2005/10/01(土) 11:21:07すると,あなたは R5RS にないものは使わないのですか?
事実上標準だと主張しているのだが.メインストリームの商用
コンパイラで末尾再帰の最適化機能を持たないコンパイラがある
のかと.Scheme ではコンパイルについての規格がないから,
安心してコンパイルできない!! というくらいの心配症の人なら
まぁ,止めないけどね.
> Schemeでトレースしたけりゃ末尾再帰の最後に適当な置石すりゃいいだけだし。
残念な結末ですね.大規模なプログラムでそれが簡単な事だお思いますか?
末尾再帰の最適化を OFF にしたら Scheme じゃないんでしょ?
Scheme の処理系依存機能はよくて,CL の処理系依存機能はだめなんですか.
そんな事言うなら,CLOS 相当の機能がなく,したがって安全にオブジェクトの
定義を更新できないほうが嫌だ.
再帰というトンカチを手にすると他の全てが再帰に見えてくる.ループは
再帰の特殊系だけど,本来並列動作とかもあるから
(map fn lst)
を見て,再帰的な実装がまず第一に頭に浮ぶならもう一度良く考えたほう
がいい.
0604デフォルトの名無しさん
2005/10/01(土) 11:36:24俺なんか既存の概念をくつがえすようなトンデモない
処理系を期待しちまうけどな。がんばって勉強しろーよ。
最初はショボくても独自 Lisp 上等。Lisp の進化の歴史を
学ぶもの一興。
まず自分で作ってみれば?ショボショボインタプリタとかでいいから。
つうか 573 を応援してやりたいが,情報がないな。
Lisp/Scheme の腕前と C の腕前はどーなんだろう。
0605デフォルトの名無しさん
2005/10/01(土) 12:02:370606教えて厨
2005/10/01(土) 16:54:07(-1 3 2 5 3 -3 -4)
というようなリストがあるとしますよね。
これを
((-1 -3 -4) (3 2 5 3))というように負数と正数で別々のリストに分類したい。
これ、負数だけとりだす関数と正数だけ取り出す関数を作って、
それをlistすれば簡単にできるけど、
再帰関数ひとつだけで作る方法もあるんだよね??
それってどうやるの?
letやlet*なんかでnilとかに初期化した変数って、再帰で呼び出すと
再帰呼び出し先でもまたnilとかになるの?
再帰呼び出し先で再帰呼び出し元での変数の値が引き継がれるような方法
があればうまくやれそうなんだけどなあ。
みなさんなら、どうやって再帰関数一つだけで、上のような処理を実装できますか
0607デフォルトの名無しさん
2005/10/01(土) 17:31:36(defun plus-minus (list)
(loop for x in list
if (>= x 0) collect x into plus
else collect x into minus
finally (return (list minus plus))))
再帰
(defun plus-minus (list)
(labels ((iter (l plus minus)
(if (null l)
(list (nreverse minus) (nreverse plus))
(let ((x (car l)))
(if (>= x 0)
(iter (cdr l) (cons x plus) minus)
(iter (cdr l) plus (cons x minus)))))))
(iter list '() '())))
0608デフォルトの名無しさん
2005/10/01(土) 19:49:26(setq a t)
とした変数aの真偽を連想リストに入れてやりたいのですがうまくいきません。
(setq b '((res . a) (res2 . ....)))
みたいにすると(cdr (assoc 'res b))はtではなくaを返すし
(setq b '((res . (eval a)) (res2 . ....)))などとしても同様です。
環境はxyzzyです。どうかお願いします。
0609デフォルトの名無しさん
2005/10/01(土) 20:16:300610デフォルトの名無しさん
2005/10/01(土) 20:29:240611& ◆6g4XpN.URU
2005/10/01(土) 20:35:27どうもありがとう。
ちなみにiterって初めてみるんだけど、どういう関数なの?
0613デフォルトの名無しさん
2005/10/01(土) 20:57:32labelsの行をじっと見つめてみろ。
0614デフォルトの名無しさん
2005/10/01(土) 23:13:06quoteしたら評価されないって言うことです。
quoteしないようにこんな感じで書けばOK
(setq a t)
(cdr (assoc 'res (list (cons 'res a))))
いちいちこう書くのは面倒だからbackquote構文が用意されてる
って感じかな。
0615デフォルトの名無しさん
2005/10/01(土) 23:15:33マクロって偉大だよなあ・・・
0616デフォルトの名無しさん
2005/10/02(日) 04:39:29宿題だとすると labels の内部関数はつかっちゃだめかも?ということで
親切にも別解だっ.
;; 再帰関数一つ
(defun plus-minus (lst &optional plus minus &aux (x (car lst)) (xs (cdr lst)))
(cond ((null x)
(values plus minus))
((>= x 0)
(plus-minus xs (cons x plus) minus))
(t
(plus-minus xs plus (cons x minus)))))
;; メソッド一つ
(defmethod plus-minus-2 ((lst null) &optional plus minus)
(values plus minus))
(defmethod plus-minus-2 ((lst cons) &optional plus minus)
(if (>= (car lst) 0)
(plus-minus-2 (cdr lst) (cons (car lst) plus) minus)
(plus-minus-2 (cdr lst) plus (cons (car lst) minus))))
0617デフォルトの名無しさん
2005/10/02(日) 09:38:28(labels ((recur (lis in out)
(cond ((null lis) (values (nreverse in) (nreverse out)))
((funcall test (car lis))
(recur (cdr lis) (cons (car lis) in) out))
(t
(recur (cdr lis) in (cons (car lis) out))))))
(recur lis '() '())))
CL-USER> (partition #'(lambda (x) (>= x 0)) (list 1 -3 0 -2 9 -8))
(1 0 9)
(-3 -2 -8)
0618デフォルトの名無しさん
2005/10/02(日) 10:59:40(let ((in (cons nil nil)) (out (cons nil nil)))
(let ((i-tail in) (o-tail out))
(dolist (x list (values (cdr in) (cdr out)))
(if (funcall test x)
(setf i-tail (setf (cdr i-tail) (cons x nil)))
(setf o-tail (setf (cdr o-tail) (cons x nil))))))))
0619デフォルトの名無しさん
2005/10/02(日) 11:40:15(do ((lis lis (cdr lis))
(in '())
(out '()))
((null lis) (values (nreverse in) (nreverse out)))
(if (funcall pred (car lis))
(push (car lis) in)
(push (car lis) out))))
0620おしえて厨
2005/10/02(日) 23:47:39だすようなGUI作ることってできないの?できるとしたら
そういう情報はどこにある?
0621デフォルトの名無しさん
2005/10/03(月) 00:01:59例えば http://www.wxcl-project.org/
0622デフォルトの名無しさん
2005/10/03(月) 01:27:27自分で Windows の API を呼べばいい.
A) FFI で必要な API をラップする (http://hocwp.free.fr/ah2cl/ とか)
B) Lisp 向けの API を実装したライブラリを作る
ただし,どっちもある程度 C の知識がないと難しいかもね.
Corman Lisp とか AllegroCL や LispWorks といった処理系を使う手もある.
AllegroCL や LispWorks はどっちも GUI ライブラリを持ってるよ.
0623デフォルトの名無しさん
2005/10/03(月) 16:43:370624デフォルトの名無しさん
2005/10/03(月) 17:56:310625デフォルトの名無しさん
2005/10/05(水) 15:05:45(my-reverse '(1 (2 3) (4 (5 6))))
を与えたら(((6 5) 4) (3 2) 1) と、
中身が全て反転するような関数my-reverseを定義するやり方を教えてください。
お願いします。
0626デフォルトの名無しさん
2005/10/05(水) 15:14:34>>513-525
0628デフォルトの名無しさん
2005/10/05(水) 18:07:07(let ((result '()))
(dolist (x list result)
(if (consp x)
(push (my-reverse x) result)
(push x result)))))
0629デフォルトの名無しさん
2005/10/05(水) 19:14:32ありがとうございます!!
0630デフォルトの名無しさん
2005/10/05(水) 19:43:330631デフォルトの名無しさん
2005/10/05(水) 20:30:40おまえら普段何してんの?
0632デフォルトの名無しさん
2005/10/05(水) 20:35:490633デフォルトの名無しさん
2005/10/05(水) 23:10:510634デフォルトの名無しさん
2005/10/06(木) 01:30:05SBCL - CLISP では力不足な計算用とかスレッド使いたいときとか
CMUCL - 最近使ってない…互換性検証用か
0635631
2005/10/06(木) 01:34:37俺の使っている処理系を教えてやるから勉強汁
Ruby 1.8.3
ユーザビリティの低いもの使ってんなよ
0636デフォルトの名無しさん
2005/10/06(木) 01:51:04SBCLってCMUCLよりデバッグやりにくくない?
0637デフォルトの名無しさん
2005/10/06(木) 02:14:31どのへんがやりにくいとおもう?
0638デフォルトの名無しさん
2005/10/07(金) 10:11:250639デフォルトの名無しさん
2005/10/07(金) 14:34:430640初心者
2005/10/09(日) 00:25:24(cond ((null x)
(values plus minus))
((>= x 0)
(print xs)
(plus-minus xs (cons x plus) minus))
(t
(plus-minus xs plus (cons x minus)))))
このコードのxやxsって再帰のたびに更新されていくけど、a
(defun test (lis &aux (a (first lis)) (b (rest lis)))
(if (not (null (first lis)))
(print b)(test b)))
これのaやbは再帰しても更新されないよね・・・違いはなんなの?
再帰後にもずっと同じ値がはいったままだったり、再帰後には再帰後の
更新された値が入ったりするその違いって?
0641デフォルトの名無しさん
2005/10/09(日) 01:25:18(lambda (x y) (let* ((a form1) (b form2)) ...)) と同じ。
後半で更新されてないように見えるとしたら、それはちゃんと再帰
してないから。
0642デフォルトの名無しさん
2005/10/09(日) 08:45:59↓こんな動きになってるのは理解できてるの?
CL-USER> (PLUS-MINUS '(1 -3 2))
0: (PLUS-MINUS (1 -3 2))
x: 1 xs: (-3 2)
1: (PLUS-MINUS (-3 2) (1) NIL)
x: -3 xs: (2)
2: (PLUS-MINUS (2) (1) (-3))
x: 2 xs: ()
3: (PLUS-MINUS NIL (2 1) (-3))
x: () xs: ()
3: PLUS-MINUS returned (2 1) (-3)
2: PLUS-MINUS returned (2 1) (-3)
1: PLUS-MINUS returned (2 1) (-3)
0: PLUS-MINUS returned (2 1) (-3)
CL-USER> (TEST '(NIL NIL 2))
0: (TEST (NIL NIL 2))
a: NIL b: (NIL 2)
1: (TEST (NIL 2))
a: NIL b: (2)
2: (TEST (2))
a: 2 b: ()
NIL
2: TEST returned NIL
1: TEST returned NIL
0: TEST returned NIL
0643& ◆RdmUjfVKqQ
2005/10/09(日) 10:34:53そういう動きになっててほしいけど、
printから出てくる値をみてる感じだと、
2番目のコードだと再帰前のリストのrestとったものがでてるようにみえるんだよ〜
0644デフォルトの名無しさん
2005/10/09(日) 10:54:000645デフォルトの名無しさん
2005/10/09(日) 12:53:13意図したように動いているみたいなんで,
640 が動作させた本当のコードと入力値を述べたまえ.
0646デフォルトの名無しさん
2005/10/09(日) 14:08:21(defun test (lis &aux (a (first lis)) (b (rest lis)))
(if (not (null (first lis)))
(progn (print b)(test b))))
0647デフォルトの名無しさん
2005/10/09(日) 14:40:00思うに,if の条件が意図したやつと逆になっているので期待どうりしていなかっ
たとかそんな事じゃないかな.どーゆう条件でどう動いてほしかったのかを日本語
で説明してもらうのがはやいと思う.
0648おすえて
2005/10/09(日) 20:21:16(if (not (null (first lis)))
(print b)(test b)))
これが、(test '(1 2 3 4 5))とやったときに
例えば
(2 3 4 5)
(3 4 5)
(4 5)
(5)
みたいにならないのは、なぜ?
0649デフォルトの名無しさん
2005/10/09(日) 20:29:11なぜそうなると思った?
0650& ◆eDpN.64OYw
2005/10/09(日) 20:48:49(cond ((null x)
(values plus minus))
((>= x 0)
(print xs)
(plus-minus xs (cons x plus) minus))
(t
(plus-minus xs plus (cons x minus)))))
↑これだと再帰のたびにxsが変わっていくから、468でもそうだろうと
思ったんだけど
0651デフォルトの名無しさん
2005/10/09(日) 21:00:36(defun test (lis &aux (a (first lis)) (b (rest lis)))
(cond ((not (null b))
(print b)
(test b))))
ってな感じかな。if の定義を再勉強!
0652デフォルトの名無しさん
2005/10/09(日) 21:04:561. if の構文を間違えている (おそらく)
2. 条件の中身も間違えている
それって,「条件を満しているなら print で b を表示したあと再帰する」って
処理が希望のようだが,書いたコードが,「もしリストの先頭要素が nil 以外なら表示する.そうでないなら再帰する」
なので,表示は一回しかされない.
(defun test (lst &aux (a (first lst)) (b (rest lst)))
(if a
(progn
(print b)
(test b))))
もしくは
(defun test (lst &aux (a (first lst)) (b (rest lst)))
(when a
(print b)
(test b)))
だな.手元の参考書を if の説明をちゃんと読みなおしたほうがいい.
0653& ◆QWv3R1XL8M
2005/10/09(日) 21:14:39なので,表示は一回しかされない.
なんで??
再帰二回目だとrestとった値がなんでnilになる???2とか3じゃないの??
ifがどうとか言う以前によくわからんのですが
0654デフォルトの名無しさん
2005/10/09(日) 21:23:19if の説明を確認しろっていわれてんだから素直にそうしな。
0655& ◆QWv3R1XL8M
2005/10/09(日) 21:31:58で、
(defun test (lis &aux (a (first lis)) (b (rest lis)))
(cond ((not (null b))
(print b)
(test b))))
↑これ実行できないんですけどこれは何故?
0656デフォルトの名無しさん
2005/10/09(日) 21:39:12大した手間でもないだろうから手で入力したまえ.
0657おしえて厨
2005/10/10(月) 19:51:08オリジナルの数字リストの昇順または降順ソートプログラムを
書いてみてください。
できれば初心者でもアルゴリズムが分かりやすいような書き方でおながい
0658デフォルトの名無しさん
2005/10/10(月) 20:35:14やだ
0659デフォルトの名無しさん
2005/10/10(月) 20:50:39include <stdio.h>
#include <math.h>
main()
{
double x,y,z;
printf("x =");
scanf("%lf",&x);
printf("y =");
scanf("%lf",&y);
z = pow(x ,y);
printf("x\ty = %lf", z);
}
0660デフォルトの名無しさん
2005/10/10(月) 20:52:120661デフォルトの名無しさん
2005/10/10(月) 21:05:090662デフォルトの名無しさん
2005/10/11(火) 04:45:21面白い物見つけた。
ttp://www.geocities.jp/shido_takafumi/lisp/macro3.html
Socket 経由で GUI を作ってるっぽいけど、Windows Native でも
似た様なのがあるんじゃないかな。Mac だとこういうのがある。
http://www.bluem.net/downloads/pashua_en/
0663おしえて厨
2005/10/11(火) 08:49:23(cond ((null (rest lis))
lis)
((< (first lis) (first (rest lis)))
(remove (first lis) lis)
(remove (first (rest lis)))
(cons (first lis) lis)
(cons (first (rest lis) lis))
(small lis)
(t (small (rest lis))))))
↑バブルソートしたくて書いてみた。駄目だった。どこが駄目?
0664デフォルトの名無しさん
2005/10/11(火) 09:41:520665デフォルトの名無しさん
2005/10/11(火) 10:13:57(let ((len (length lst)))
(cond ((< len 2) lst)
((= len 2)
(let ((x (car lst))
(y (cadr lst)))
(if (< x y) (list x y) (list y x))))
(t
(do ((x (merge-sort (butlast lst (ash len -1))))
(y (merge-sort (last lst (ash len -1))))
(r '()))
((or (null x) (null y))
(nconc (nreverse r) x y))
(push (if (< (car x) (car y)) (pop x) (pop y)) r))))))
0666おしえて厨
2005/10/11(火) 17:25:50どうやって一文字しかないのを消すの?
あと、(a b c (a ((b))))みたいになってるときのbだけを消して、
(a b c (a (( ))))みたいにする方法って、あるの?
0667デフォルトの名無しさん
2005/10/11(火) 18:03:53((lambda (f) (funcall f f y))
(lambda (f y) (typecase y
(list (remove x (mapcar (lambda (y) (funcall f f y)) y)))
(t y)))))
'b '(a b c (a ((b)))))
=> (A C (A (NIL)))
0668おしえて厨
2005/10/11(火) 19:06:510669デフォルトの名無しさん
2005/10/11(火) 19:36:090670デフォルトの名無しさん
2005/10/11(火) 19:37:20処理系がまがい物だな
0671デフォルトの名無しさん
2005/10/11(火) 20:10:170672おしえて厨
2005/10/11(火) 20:43:060673デフォルトの名無しさん
2005/10/11(火) 21:12:30xyzzy使いのよしみで回答しておくけど、
CommonLisp を勉強するのに xyzzy を処理系として使っちゃダメ。
xyzzy でマクロを書くための勉強ならここで質問するのは間違い。
((lambda (x y)
((lambda (f) (funcall f f y))
(lambda (f y) (if (listp y)
(remove x (mapcar (lambda (y) (funcall f f y)) y))
y))))
'b '(a b c (a ((b)))))
=>(a c (a (nil)))
0674おしえて厨
2005/10/11(火) 21:57:05(cond ((null lis)
nil)
((atom (first lis))
(cond ((eql n (first lis))
(del-atom n (rest lis)))
(t (cons (first lis) (del-atom n (rest lis))))))
((listp (first lis))
(cond ((listp (first (first (first lis))))
(cond ((eql n (first (first (first lis)))))
(del-atom n (rest lis)))
(t (cons (first lis) (del-atom n (rest lis))))))
(cond ((listp n (first (first lis)))
(cond ((eql n (first (first lis)))
(del-atom n (rest lis))))
(t (cons (first lis) (del-atom n (rest lis)))))))))
↑自分でもやってみようとしたら、こんなんなっちゃったよ〜〜〜〜
どこが駄目???
0675デフォルトの名無しさん
2005/10/12(水) 00:50:11(cons (del-atom n (first lis)) (del-atom n (rest lis))))
0676デフォルトの名無しさん
2005/10/12(水) 00:51:180677デフォルトの名無しさん
2005/10/12(水) 17:12:58それはね、「xyzzy Lisp Programming」のページで、first と rest を推奨す
る、と書かれているからだよ。
http://www.geocities.jp/m_hiroi/xyzzy_lisp/abclisp02.html
0678デフォルトの名無しさん
2005/10/12(水) 17:23:12「first と rest を使うことが推奨されています」なんて書いてるが、「誰が」推奨
しているのか不明だな。少なくとも CLtL2 にも ANSI にもそんな記述は見あた
らないが。(もし見落としてたら教えてくれ)
0679おしえて厨
2005/10/12(水) 17:33:11まあそれはさておき675さんの指摘がよくわかりません。
どこを直せばいいの??
0680デフォルトの名無しさん
2005/10/12(水) 18:08:58> どこを直せばいいの??
頭の中身。
お前さんは九九も覚えてないのに数学の問題を見てわからないとわめいてるの
と同じなので、677 が紹介してるサイトの Common Lisp 入門を全部読んで
理解してからもう一度いらっしゃい。
0681デフォルトの名無しさん
2005/10/14(金) 03:51:47car,cdrの方が好き
ハード寄りで
0682デフォルトの名無しさん
2005/10/14(金) 11:14:21いつの時代の方ですか?
0683デフォルトの名無しさん
2005/10/14(金) 12:23:030684デフォルトの名無しさん
2005/10/14(金) 12:27:200685デフォルトの名無しさん
2005/10/14(金) 14:01:44car、cdrのほうが好きだな。
0686デフォルトの名無しさん
2005/10/14(金) 17:17:44俺もその本持ってる。そのせいか first、rest 派。
自分では使わないから、car や cdr ならともかく caddr ぐらいでもわけわからん。
0687デフォルトの名無しさん
2005/10/14(金) 17:23:31caddr と third とどっちがわかりやすいかだわな。
個人的には視覚的にわかる caddr のほうが好き。
0688デフォルトの名無しさん
2005/10/14(金) 22:48:16いや、俺も使わないけど
0689デフォルトの名無しさん
2005/10/15(土) 14:56:320690デフォルトの名無しさん
2005/10/15(土) 15:05:25nth は aref とともに elt の特別版ということだな。
むしろ、この3つの中で nth だけ引数順が違うのが気になる。
0691デフォルトの名無しさん
2005/10/16(日) 18:18:47パンプルピンプルパムポップン
カッドゥルゥァー
クックドゥー
0692デフォルトの名無しさん
2005/10/18(火) 22:37:29(・∀・)スンスンスーン
0693デフォルトの名無しさん
2005/10/19(水) 19:16:220694デフォルトの名無しさん
2005/10/19(水) 20:40:030695デフォルトの名無しさん
2005/10/19(水) 20:42:510696デフォルトの名無しさん
2005/10/19(水) 20:45:200697デフォルトの名無しさん
2005/10/19(水) 20:55:260698デフォルトの名無しさん
2005/10/21(金) 00:53:04C/C++とCommon Lispを混ぜた開発したいんだけども、実際の使われ方を見て勉強した方が
理解が早いかなと思って。
それともUFFI使うのが定説ですかね。
0699デフォルトの名無しさん
2005/10/21(金) 01:37:09まず Lisp 側のインターフェースを決めて,それが十分に抽象化できていれば
その下は UFFI だろうが処理系の FFI だろうがたぶん問題ない.
ECL はあんまり触ったことないので本題には答えられない.スマソ.
キーワードハイライトつきのエディタ作ったとか Planet Lisp に出てたような.
0700698
2005/10/21(金) 01:58:32ありがと。Planet Lisp行ってきます。
スレ違いって怒られるかも知れないけど、Gaucheとかだと結構事情が違ったりする?
確か開発目標に他の言語と仲良くするってのがあったような。でも最終的には
ネイティブコードで走らせたいんだよなぁ・・・
0701デフォルトの名無しさん
2005/10/21(金) 02:08:50それでフリーなのがいいならCMUCLやSBCLがいいんじゃないかな。
Cの呼び出しやCからのコールバックもそれほど面倒じゃないし。
0702698
2005/10/21(金) 02:45:04簡単なアナウンスだけ出ててsourceforgeに誘導されてみたらスクリーンショットも
公開されてました。CVS HEADにコードが入っているみたいなのでこれから調査します。
いまはプロトタイピングの段階なので実現可能性の検証が主体です。アルゴリズムの設計と
検証はLispであ〜でもないこ〜でもないやりながら考えた方がお手軽なのですが
プロジェクトの他のメンバがC/C++でコード書いてるので現状は
・Lispでアルゴリズム練る → C++で等価なコードを書いてリポジトリにチェックイン
してます。二度手間でアホらしいんですが最初からC++であれこれ書けないんですよ。
C++の汚さに辟易して大分昔に標準化の動向追いかけるのやめていたこともあって。
で、どうせならLispのコードそのままC/C++に埋め込んじゃうことはできないのかな〜と
たくらんでいるところです。
スレ違いになりますが最近STLやらBoostやらLokiやら勉強してみて驚愕しました。
何であんな大変な思いをしてまでC++使うんですかね・・・不思議でたまらん。
0703デフォルトの名無しさん
2005/10/21(金) 02:54:10ずいぶんと怪奇なことになってるよね。>C++
でも、すべてインラインに開いちゃうから確かに速い。
そのかわりコードサイズが大爆発。w
0704デフォルトの名無しさん
2005/10/25(火) 00:24:33soketを開くとかプロセス制御するとか低レイヤな処理をする場合
どーすんのでしょうか。処理系にそうしたライブラリがなかったりする場合は?
0705デフォルトの名無しさん
2005/10/25(火) 00:34:490706デフォルトの名無しさん
2005/10/25(火) 01:12:37どうにもなりません。そういうライブラリが存在するか、ネイティブコードを
呼ぶなどの方法でなんとかできる処理系を選びましょう。
0707704
2005/10/25(火) 01:53:21むぅ。そういうもんなんですか。教えて頂いて有難うございます。
そういったことは一旦置いておくとすると、学習向けに
オススメの処理系があればご教授頂けると助かります。
今のところ本読んでるだけなのですが手続き型が染み付いた頭には
関数プログラミングって難しい…。
0708デフォルトの名無しさん
2005/10/25(火) 02:04:53WindowsならCLISP、UNIX系ならSBCLがいいんじゃないかな。
どちらもソケットなどの拡張機能は持っているよ。
0710デフォルトの名無しさん
2005/10/28(金) 00:10:410711デフォルトの名無しさん
2005/10/28(金) 00:15:22それはSLBM
0712デフォルトの名無しさん
2005/10/28(金) 01:26:06書き込みを見掛けて興味を持ったのですが、具体的にLispで記述されたコンパイラとかで
参考になりそうなものがあれば教えていただけますか?ソースを見てどんな利点があるのか
比較してみたいです。大昔GCCのソースを眺めたとき内部でS式みたいので木を表現して
いたみたいでしたが、表現形式だけじゃなくて実際に内部でLispプログラムが動いてたり
するんだろか。
0713デフォルトの名無しさん
2005/10/28(金) 03:53:37パイラはほとんど Lisp で書かれているよ.ただ,Lisp 製の ML や C コンパ
イラとかもあるけど,入門で読むのは無理だろう.
利点としてはコンパイラを書く時にモロに Lisp コンパイラの機能がつかえる!!
といっても,何の事か Lisp を知らなければまったくイメージできないかもしれない.
だからまず Lisp を学ぶ必要があるとおもうよ.基礎を一通りやったあと,
http://groups.google.com/group/comp.lang.lisp/msg/2108939e399c5c4e
とか見て,それでもメリットがわからないようなら Lisp の事は忘れたほうが
いい.合う合わないがあるからね.
0714デフォルトの名無しさん
2005/10/28(金) 20:14:180715デフォルトの名無しさん
2005/10/30(日) 01:11:050716デフォルトの名無しさん
2005/10/30(日) 03:33:47言わないと通じない時代かもしれんな…
0717デフォルトの名無しさん
2005/10/30(日) 06:51:32(竹内)
0718デフォルトの名無しさん
2005/10/30(日) 11:34:430719デフォルトの名無しさん
2005/10/30(日) 14:47:52C,C++,java,perl,ruby,python,PHPなどのメジャーな手続き型のどれか
0720デフォルトの名無しさん
2005/10/30(日) 16:39:07Lisp プログラマのための Python 入門
http://www.unixuser.org/~euske/doc/python/python-lisp-j.html
こんな感じ?
0722デフォルトの名無しさん
2005/10/30(日) 19:46:03Windows上で動く?
0723デフォルトの名無しさん
2005/10/30(日) 19:47:420724デフォルトの名無しさん
2005/10/30(日) 19:50:17PDP-10 とか DEC System 20xx のエミュがあれば。
0725デフォルトの名無しさん
2005/10/30(日) 19:57:22javascript は lisp です
0726デフォルトの名無しさん
2005/10/30(日) 23:48:45Web のクライアントサイドスクリプティングなら圧倒的に JavaScript が優れている.
逆にサーバーサイドでの処理なら Lisp のほうが良いな.でも君が病的に括弧
を恐れているならどこでも JavaScript のほうが優れていると感じるだろう.
基準をしめさない場合,「どちらが優れていか?」というのは主観的な問題だ
から,人に聞いてもあまり意味がないよ.
0727デフォルトの名無しさん
2005/10/31(月) 03:19:260728デフォルトの名無しさん
2005/11/01(火) 00:04:260729デフォルトの名無しさん
2005/11/01(火) 06:11:420730デフォルトの名無しさん
2005/11/01(火) 07:05:14主観なわけねーじゃん。ばっかじゃないの
0731デフォルトの名無しさん
2005/11/01(火) 10:46:25基準をしめさない場合、という条件でどこをどうやったら主観じゃなくなるのだ?
0732デフォルトの名無しさん
2005/11/01(火) 11:35:210733デフォルトの名無しさん
2005/11/01(火) 12:11:48コーマンリスプなんてどうだ。
http://www.cormanlisp.com/
0734デフォルトの名無しさん
2005/11/01(火) 12:54:47corman はチェックしてなかったな。結構寛容なライセンスだね。
0735デフォルトの名無しさん
2005/11/01(火) 13:34:49t
とか表示させるだけだろ
0736デフォルトの名無しさん
2005/11/02(水) 00:11:240737デフォルトの名無しさん
2005/11/02(水) 00:30:12要望あったら聞くよーてなメールも送ってきたくらい個人商店ぽいので
誰か日本で使い物になるなら買うから是非頼むといってやれば
なんとかしてくれるかも。
0738デフォルトの名無しさん
2005/11/02(水) 00:31:55つまり Lisp においては「x に 2 を倍する」プログラムはデータ構造 (* x 2) と表現できるわけだ.
(もし熱烈な C/C++ & XML ファンならこの構文木をつくってよう)
さて,ここで操作する.もし「x に 2 を足す」にしたいと思ったとする.
これは Lisp では (+ x 2) と表現できる.インタプリタ上ならば
> code
(* x 2)
> (setf (car code) '+)
(+ x 2)
となる.(もし熱烈な C/C++ & XML ファンなら,同様の操作を表現してみよう )
さて,これをコンパイルしてみよう.このとき,コードは引数 x を一個とるわけなので関数で
ラップする.これは (lambda (x) (+ x 2)) と書ける.Common Lisp の compile メソッドを使うと
> (compile nil '(lambda (x) (+ x 2)))
#<compiled-function>
これでコンパイルされたコードが得られる.もしネイティブコードコンパイラ
を使っているならネイティブコードが得られる.確認したければ,すかさず
> (disassmble *)
とうてばよい.このようにコンパイラは Lisp 環境と統合されており,利用者が気軽に使える存在なのである.
(もし熱烈な C/C++ & XML ファンなら,表現した構文木をコンパイルしてからディスアセンブルしてみよう)
0739デフォルトの名無しさん
2005/11/02(水) 02:59:33KCL 系だってそうやってんだし。
0740デフォルトの名無しさん
2005/11/03(木) 13:38:27まぁ,Lisp では手軽さがケタ違いです.C を直接さわったら操作するたびに,
C のソース <--> データ構造 を変換しなきゃいけないのですが,逆に S 式な
ら変換する必要はない.
まぁ,どうしてもと言うなら C っぽく入力列 (S 式風味) をパースしてコンパ
イル,実行という手順でもいい.例として forth 風味の言語を考えよう.
def double
2 *
end
def quad
double double
end
def fib
dup 1 > if
dup 1 - fib swap 2 - fib +
end
end
reset
5 quad fib print
これでフィボナッチ数列の 20 番目を表示したいとする.大袈裟に言うと,
たとえば gcc のバックエンドにこの言語のフロントエンドを作るという事になる.
これは手軽か?(まぁ,手間以外の難易度は Lisp だろうとなんだろうと簡単なんだけど…)
0741デフォルトの名無しさん
2005/11/03(木) 13:41:51表現し,スタックのクリア,表示,スタックトップの入れ替え,コピーという基本操作を
使う.算術演算子も lisp のやつを流用する.と,オペレータの定義はこうなる.
(defpackage :mini-forth (:use :cl) (:export #:parse #:run #:forth) (:shadow #:print #:pop #:push #:+ #:- #:* #:/ #:> #:< #:= #:>= #:<=))
(in-package :mini-forth)
(defparameter *stack* nil)
(defmacro defword (word args &body body)
(let ((binds (loop for v in args collect (list v '(cl:pop *stack*)))))
`(defun ,word () (let* ,binds ,@body))))
(defmacro default-operators (&rest operators)
`(progn
,@(loop for op in operators
collect `(defword ,op (x y) (cl:push (,(intern (symbol-name op) :common-lisp) y x) *stack*)))))
(defword print () (loop for e in *stack* for i from 0 do (format t "~&~4D: ~A~%" i e)))
(defword reset () (setf *stack* nil))
(defword swap (x y) (cl:push x *stack*) (cl:push y *stack*))
(defword dup (x) (cl:push x *stack*) (cl:push x *stack*))
(default-operators + - * / > < = >= <=)
0742デフォルトの名無しさん
2005/11/03(木) 13:43:17(defun parse (program &optional (ast nil) &aux (word (first program)))
(cond ((or (null program) (eq word 'end) (eq word 'else))
(values (nreverse ast) program))
((or (stringp word) (numberp word))
(parse (cdr program) (cons `(cl:push ,word *stack*) ast)))
((eq word 'if)
(multiple-value-bind (tree next)
(parse (cdr program))
(multiple-value-bind (tree2 next2)
(parse (if (eq (car next) 'else) (cdr next) next))
(parse (cdr next2) (cons `(if (cl:pop *stack*) (progn ,@tree) (progn ,@tree2)) ast)))))
((eq word 'def)
(multiple-value-bind (tree next)
(parse (cddr program))
(parse (cdr next) (cons `(defword ,(cadr program) () ,@tree) ast))))
(t (parse (cdr program) (cons `(,word) ast)))))
で,得られた S 式をコンパイル(Lisp コンパイラを流用)して実行.
(defun run (program)
(let ((tree (cons 'progn (parse program))))
(funcall (compile nil `(lambda () ,tree)))))
0743デフォルトの名無しさん
2005/11/03(木) 13:51:52MINI-FORTH> (run '( [さっきのプログラム] ))
0: 6765
計算できたッ!! ついでにこの簡易言語で定義された関数 fib とかはLisp コン
パイラでコンパイルされている.つまりネイティブコードコンパイラを使って
いればネイティブコードが得られる.
MINI-FORTH> (disassemble 'fib)
; 09AB6F66: 8BD4 MOV EDX, ESP ; no-arg-parsing entry point
; 6F68: 83EC0C SUB ESP, 12
; 6F6B: 8B05886DAB09 MOV EAX, [#x9AB6D88] ; #<FDEFINITION object for DUP>
; 6F71: 31C9 XOR ECX, ECX
; 6F73: 896AFC MOV [EDX-4], EBP
; 6F76: 8BEA MOV EBP, EDX
; 6F78: FF5005 CALL DWORD PTR [EAX+5]
; 6F7B: 8BE3 MOV ESP, EBX
[...]
…というような説明でどうかな?
0744デフォルトの名無しさん
2005/11/04(金) 01:46:00結構短く書けるもんだね。
ところで↓のスレとここはどう使い分けてるの?
スレタイ同じだから混乱するぜ。
【一日】CommonLisp【一門】
http://pc8.2ch.net/test/read.cgi/tech/1106587515/
0745デフォルトの名無しさん
2005/11/04(金) 02:05:480746デフォルトの名無しさん
2005/11/04(金) 04:54:180747デフォルトの名無しさん
2005/11/08(火) 00:07:54教えてください。どうも、±がどう表現していいか分からなくて…。
よろしくお願いします。
0748デフォルトの名無しさん
2005/11/08(火) 00:09:530749デフォルトの名無しさん
2005/11/08(火) 00:13:37>>747
> ±がどう表現していいか
思考様式の変革が必要だと思う
0750デフォルトの名無しさん
2005/11/08(火) 00:27:290751デフォルトの名無しさん
2005/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))))
0752デフォルトの名無しさん
2005/11/08(火) 00:39:190753デフォルトの名無しさん
2005/11/08(火) 00:41:43±にあたるものが存在してないのが問題の山なのかも。
存在してても使いにくそうだけど。
0754デフォルトの名無しさん
2005/11/08(火) 05:01:13でも>>751はaが非零でないことくらいはチェックした方がいいと思う
0756デフォルトの名無しさん
2005/11/08(火) 22:55:05変数名変えた程度で提出してそうだな.
0757デフォルトの名無しさん
2005/11/09(水) 10:52:42たりとかしてるけど、いっこうに解決してないよな、この問題。
数ヶ月か一年おきくらいの間隔で問題にした記事を見てる気もする。
Comm. ACMの先月号でも Academic Dishonesty and the Internet つって
とりあげてるし。なんでもclass project(宿題というよりはレポートに相当か)
を外注に出す奴までいたそうだ。何のために大学に来たのかと小一時間(ry
そういう学生のイカサマは許さんと頑張ってくれる教官は日本の大学にも
いるんだろうか。なんかそんなやつ放っとけ面倒だと知らんぷりになりそうなんだが。
0758デフォルトの名無しさん
2005/11/09(水) 10:58:030759デフォルトの名無しさん
2005/11/09(水) 11:26:00卒論だって金でやってもらえる時代ですよ。
教官だって普段の学生の様子を見てれば、まじめにやってるやつと
金で解決したやつの違いくらいわかるでしょ。わからなかったり、
わかっても注意しなかったら、その程度の教官ってこと。
でも>>747はこんなとこで聞く前に、教官に質問しろ。
払った授業料以上のものを貰わないともったいないぞ。
質問しても答えてもらえなかったらダメな先生に当たったと諦めろ。
0760デフォルトの名無しさん
2005/11/09(水) 11:36:090761デフォルトの名無しさん
2005/11/09(水) 11:47:020762デフォルトの名無しさん
2005/11/09(水) 11:50:210763デフォルトの名無しさん
2005/11/09(水) 12:01:17君たちにとって無駄でどうでもいいのなら提出しなければいい。
0764デフォルトの名無しさん
2005/11/09(水) 12:03:450765デフォルトの名無しさん
2005/11/09(水) 12:30:01単位に値しないなら労力を割かないほうがよい。
単位取得を重要視するなら学生側でそれくらいのマネジメントくらいしろ。
0766デフォルトの名無しさん
2005/11/09(水) 12:33:44余計な事言うから >>757-765 のような板違い連中を釣り上げちゃう。
0767デフォルトの名無しさん
2005/11/09(水) 20:47:57答えだけ欲しければ宿題スレへいけ。
0768デフォルトの名無しさん
2005/11/09(水) 21:07:390769デフォルトの名無しさん
2005/11/09(水) 21:51:43教授が集めてきた学生たちのレポートを実験の対象にしてた。
結果、年度・言語に関わらず、2〜3の大きいグループができると判明した。
0770デフォルトの名無しさん
2005/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
0771デフォルトの名無しさん
2005/11/13(日) 01:58:53こんなんでどうだ。
(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)))
0772デフォルトの名無しさん
2005/11/13(日) 02:45:02それによって難易度が違うんで。
(+ 1 2)
なのか
(setf a '(+ 1 2))
なのか。使う関数は +, *, -, / なのか Lisp のフル機能の使うのか,など。
0773770
2005/11/13(日) 12:58:24ご回答ありがとうございます。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のフル機能を使っていきたいと思います。
0774770つづき
2005/11/13(日) 13:03:05最後に実行して答えを返す予定です。
>>772
問題にご興味を持っていただきありがとうございました。
もし宜しければ、ヒントなど頂けたらと思います。
0775デフォルトの名無しさん
2005/11/13(日) 13:54:45このプログラムの動作はどんな動きをするんかな?
今はこのファイルを Lisp のリスト形式 (S式) に手動で変換してるんだよね?
たとえばプログラム言語としての機能を持たせたいなら(条件分岐とか)
>>740 からのレスが参考になるかもしれないし、このリストをもう少し S 式風
にカスタマイズできるなら read 系の関数を使って字句解析を省略できる。
0776770
2005/11/14(月) 20:37:38実はあるプログラム言語をパクろうと思ってます。(^^;
もちろん、自分なりの発展はさせるつもりですが。
>今はこのファイルを Lisp のリスト形式 (S式) に手動で変換してるんだよね?
そうです。
>たとえばプログラム言語としての機能を持たせたいなら(条件分岐とか)
>>>740 からのレスが参考になるかもしれないし、このリストをもう少し S 式風
早速参照してみます。
>にカスタマイズできるなら read 系の関数を使って字句解析を省略できる。
あまり複雑なS式はむりですが、出力の形式を弄る程度でできるS式には
しようと思ってます。
(setf vA 1) ←この程度ですが・・・(^^;
また、質問させていただくかもしれません。今回はアドバイスありがとうございました。
0777デフォルトの名無しさん
2005/11/15(火) 17:38:38Lisp コードの中にいわゆる普通の infix の数式を入れて書きたいと思ったら
どういう手が考えられるでしょうか。
つまりこんな感じで出来ればいいんですけど
(defun f (x y) ( + 1 y %%% x^2+y^3 %%% ))
プリプロセッサを通すとかじゃなくてやろうと思ったらどうしますか。
0778デフォルトの名無しさん
2005/11/15(火) 17:57:12つ http://groups.google.com/group/comp.lang.scheme/msg/047ee341f2c30c85
0779777
2005/11/15(火) 18:22:400780デフォルトの名無しさん
2005/11/15(火) 23:08:400781デフォルトの名無しさん
2005/11/16(水) 12:42:270782デフォルトの名無しさん
2005/11/16(水) 13:11:18なんだかんだ言って CLtL2 が一番わかりやすかった。w
0783デフォルトの名無しさん
2005/12/06(火) 16:53:20ansiの店で$18で売ってます。
0784デフォルトの名無しさん
2005/12/07(水) 10:30:59MOPのなんたるかから教えて下さい。
0785デフォルトの名無しさん
2005/12/07(水) 13:04:06AMOP読め。または図書館へ行って昔のbit別冊を探せ。
0786デフォルトの名無しさん
2005/12/07(水) 19:49:24TinyCLOSは、いじってて面白かったなぁ。またいじりたいなぁ。
Kiczalesは、Aspect orientedなる概念を提唱して、ずぅーっと
遥か彼方まで行ってしまったね。
Kiczalesのアイディアを具体化しようとしている連中は、なぜか
Java、Rubyにご執心みたいだけど。
0787デフォルトの名無しさん
2005/12/07(水) 20:12:37買えるよ。日本アマゾンは3〜5週間だが、USアマゾンなら24時間以内発送。
http://www.amazon.co.jp/exec/obidos/ASIN/0262610744
http://www.amazon.com/exec/obidos/ASIN/0262610744
0788デフォルトの名無しさん
2005/12/07(水) 20:15:140789デフォルトの名無しさん
2005/12/07(水) 22:00:57最先端とはいわないまでも、半分より前、できるなら先頭グループ
を走りたいなら、原著は避けられないと思うよ。
まぁ、かくいう俺も日本語と英語しかわからないのだけどな。
0790デフォルトの名無しさん
2005/12/07(水) 22:42:590791デフォルトの名無しさん
2005/12/08(木) 02:30:22そうか? AMOP からさほど進化したとは思えないんだが…
0792デフォルトの名無しさん
2005/12/14(水) 23:14:08最新版に対応しているところが見つからないんですが
0793デフォルトの名無しさん
2005/12/20(火) 01:46:090794デフォルトの名無しさん
2005/12/20(火) 19:14:130795デフォルトの名無しさん
2005/12/20(火) 23:38:21ネイティブコンパイラな実装があれば話は別だが。
0796デフォルトの名無しさん
2005/12/21(水) 00:26:330797デフォルトの名無しさん
2005/12/21(水) 07:51:11ngscmというものならある。
0798デフォルトの名無しさん
2005/12/23(金) 05:33:140799デフォルトの名無しさん
2005/12/23(金) 07:25:40日本語Lispなら、S式はリストの先頭でなく末尾を関数とみなすようにしないと。
0800デフォルトの名無しさん
2005/12/23(金) 09:57:03(乙 5 とする)
(甲 乙 対にする) => (3 . 5)
((甲 2 加える) 乙 乗ずる) => 25
助詞が欲しいな。
0801デフォルトの名無しさん
2005/12/23(金) 10:13:37日本語Lispといっても別に、その辺まですり合わせなくていいんじゃないかな。
0802デフォルトの名無しさん
2005/12/23(金) 13:05:23括弧を取ればそのままFORTHになるという利点(?)があるな。
0803デフォルトの名無しさん
2005/12/23(金) 13:54:53つまり GikoForth なわけですが。
0804デフォルトの名無しさん
2005/12/23(金) 19:59:15「0から い までかけあわせる」
(もしも (ぜろか い)
1
(かける い (かいじょう (いちひく い)))))
0805デフォルトの名無しさん
2005/12/23(金) 20:28:09(いれる ●ねこ 「にゃぁにゃぁ」)
(いれる ●ぶた 「ぶーぶー」)
(みる ●にわとり)
→ こけこっこー
0806デフォルトの名無しさん
2005/12/24(土) 01:10:35http://sourceforge.net/mailarchive/message.php?msg_id=14275606
;; Macho のアーカイブ止まっちゃったのか。
0807デフォルトの名無しさん
2005/12/26(月) 22:08:00carとかcdrとかcdadarとかはどうやって表現するんだ。
0808デフォルトの名無しさん
2005/12/27(火) 01:04:54cdr ⇒ 値登録所の内容
cdadar ⇒ 住所の値の住所の値登録所の内容
0809デフォルトの名無しさん
2005/12/27(火) 01:47:02cdr => それ
cdadar => そこそこれ
0810デフォルトの名無しさん
2005/12/27(火) 01:55:43car: とりだす
cdr: つぎをとりだす
cdadar: つぎのまえのつぎのまえをとりだす
関数は動詞且つ和語で統一したい所だけど、苦しいかな...
0811デフォルトの名無しさん
2005/12/27(火) 02:26:21それイイネ
0812デフォルトの名無しさん
2005/12/27(火) 10:26:20anaphoric ifのitはどうすんだ
0813デフォルトの名無しさん
2005/12/27(火) 11:57:15「あれ」
0814デフォルトの名無しさん
2005/12/30(金) 19:42:32x86 の文字がちらほら見えるけど、OpenMCL も x86 に移植されるみたいだね。
素晴らしい。
0815デフォルトの名無しさん
2006/01/09(月) 22:24:16lispのコードをいじる課題が出たのですが、
コードの保存を自分でやらなきゃならなくなって困ってます。
0816デフォルトの名無しさん
2006/01/09(月) 22:52:090817デフォルトの名無しさん
2006/01/09(月) 22:59:500818デフォルトの名無しさん
2006/01/10(火) 10:08:05っていうかLisp関係ないな
対話的にしかLispを使わない授業だったと推測するが
0819デフォルトの名無しさん
2006/01/10(火) 14:24:33それ、Smalltalk使いの私も訊きたいです。
Smalltalkでは、関数(メソッド)が自身のソースを属性として持っていて比較的
容易にたぐれるんですが、Lispでは環境内でのソース管理はどうなっているんでしょうか?
818の行間を読むと、対話的に作られた場合、関数は自身にかかわるソース情報を
(デコンパイルなどで特殊な方法で別途得る以外)他の一般的な言語と同様、
いっさい失ってしまうのが当り前…というような印象を受けるのですが。
0820デフォルトの名無しさん
2006/01/10(火) 22:47:35ANSI CL の範囲では無いと思う。ANSI Smalltalk もソースコードの管理までは
規定してないでしょ?
0821デフォルトの名無しさん
2006/01/10(火) 23:15:09lambda 式が取れなくても規格合致だけど
0822デフォルトの名無しさん
2006/01/11(水) 06:36:04「関数」はソース+定義環境だから、ソースだけ取れてもそれを保存
するみたいなことには向かないだろうね。デバッグの助けにするだけなら
いいだろうけれど。
(let ((n 0))
(defun incr (k)
(incf n k)))
なんてした時に、incrのソースはどこからどこまで? ってことね。
0823デフォルトの名無しさん
2006/01/11(水) 16:34:30違って容易にはたぐれない…のと状況は似ていそうですね。ありがとうございます。
0824デフォルトの名無しさん
2006/01/11(水) 17:02:36これ読んでLisp使いたくなりました。
入門サイト教えろこの野郎m(__)m
0825デフォルトの名無しさん
2006/01/11(水) 18:29:40ぐぐれこの野郎(^^)
0826デフォルトの名無しさん
2006/01/11(水) 18:41:45http://www.geocities.jp/m_hiroi/xyzzy_lisp.html
xyzzy向けの内容が入ってるけど
0827デフォルトの名無しさん
2006/01/11(水) 20:37:58ttp://www.h7.dion.ne.jp/~matsu/feature/common-lisp/index.html
日本語のサイトではここが一番良かった。
0828デフォルトの名無しさん
2006/01/13(金) 19:50:45>>824 の本を読んで興味持ったんだけれどよくわからんです。
コンパイル->実行とかの過程も処理対象にできるっていうのはやりようで面白いことできそうかと思ったんですが。
いまはC#つかいなのですが、.NETでのReflection,CodeDOMあたりの機能でしょうか。
0829デフォルトの名無しさん
2006/01/13(金) 20:10:48最近機能が増えた言語や開発環境(なんでもいい)で、これが入って
生産性が上がったなーってもんをリストアップしてみ。
そのリストはLispの生産性の高さの理由のリストとかなり重なると思うよ。
0830デフォルトの名無しさん
2006/01/14(土) 01:43:00手続き型でも関数型でも論理型でも並列型でもオブジェクト指向型でも,それ
に合わせられる.クラスによる分類が向かない分野では,迷う事なくそれ以外
の手法をとれるしね.
マクロによるプログラム変形とかはそういった言語カスタマイズのための道具
で,本当はこの「どんなパラダイムでもどんとこい」というのが最大のメリッ
トだと思う.個人的にはね.
0831デフォルトの名無しさん
2006/01/14(土) 04:40:52おばかで申し訳ないですが、
自分、VC++でコンソールアプリ作っております。
一部のc++の関数をLispで置き換えたいと思っておるのですが、
これって可能なんでしょうか?
おしえてえらいしと
0832デフォルトの名無しさん
2006/01/14(土) 13:24:37だいたいできると思うけど、GC関係でいろいろややこしいところは覚悟しないといけない。
0833デフォルトの名無しさん
2006/01/14(土) 14:01:571) DLL を出力できる Lisp コンパイラをもっている (普通の DLL と同じ)
2) ecl を組み込む
3) プロセス間通信する
3. がいちばん簡単かなー
0834デフォルトの名無しさん
2006/01/14(土) 17:27:18C++からC#にかわったんだけど
・Generics(これはC#1.0になかったものとして) テンプレートでないのがちょっと不満。
・リフレクション
・デリゲート 呼び出しをオブジェクト化することでいろいろ使える。
・イベント デリゲートの呼び出し管理の簡略化
・リモーティング プロセス間呼び出しを楽にした感じ
・インテリセンス(これは開発環境) これあってすごい楽になった。ヘルプとか引く回数激減。
条件に基づいてコード生成、それの管理とかできるともっといろいろ面白いことできるのかなぁとおもうけど。
0835831
2006/01/14(土) 17:46:11>>832
情報�dクス
・・・ここ数日間、GCL,CLisp ( Chicken, Gambit-C )
が吐き出すCコードをVCでコンパイルして.Libを作成しようとしてますた
直接 DLLを出力できるLispコンパイラ使わないと駄目何すね
・・・DLLを出力できるLispコンパイラ、知っていたら教えてくらはい
(上で騒がれてた、ACLってやつなのかな?)
教えて訓でスマソ
0837デフォルトの名無しさん
2006/01/14(土) 17:55:44敢えて挑発的に書けば...
Generics: 動的型なら元から不要
リフレクション: 元からある
デリゲート: クロージャの劣化再発明
イベント: クロージャが無いから無理してる
リモーティング: S式送ってevalさせればいいだけじゃん
インテリセンス: 80年代からあると思うけど
もちろん、静的型言語が持つ型安全性の保証とかはLispは弱い。
自分でがりがり書けば出来なくはないけれど。
条件に基づいてコード生成って?
0838デフォルトの名無しさん
2006/01/14(土) 18:10:18ECL もできる.GCL もできそうだけど… GCL 知らないスマン
# しかし CLISP は C コード吐かないだろう.
0839831
2006/01/14(土) 18:43:48どうもっす
ECLでゆきます
・・CLisp、間違えます田
色んなのためしてたらわからなくなてた
ありがとうございました
0840デフォルトの名無しさん
2006/01/14(土) 19:04:59C++から入ってC#やってるのでその辺の概念がまったくわからんです。
なんか最近頭がうにになってるし。
オブジェクト指向に頭が固まってる希ガス。
Lispというか関数型の利点がいまいちわかってないのでC++とかだとこんな風にしかできないけどそこをこんなエレガントにできるよって感じで教えてもらえないですか?
条件に基づいてコード生成ってのは、画面の生成とかをXAMLみたいなスクリプトに落として扱ってるんだけれどそれをそのままプログラムコードで生成したりしとか操作に基づいてロジックを生成してそのままプログラム中で扱えたりするといろいろできるかという話。
0841デフォルトの名無しさん
2006/01/14(土) 20:25:20>操作に基づいてロジックを生成
これって具体的にはどういうイメージで言ってるの?
0842デフォルトの名無しさん
2006/01/14(土) 23:07:07gclでウィンドウを生成してその中で二点を定めて
線を引くというような簡素なプログラムを組みたい
のですがどうすればよいでしょうか?どなたかご存知な
方お願いします。
まずウィンドウを生成するやり方からわかりません。。
0843デフォルトの名無しさん
2006/01/14(土) 23:29:43Tcl/Tk は別途インスコする必要あるかもしれないけど。
http://www.sunsite.ualberta.ca/Documentation/Gnu/gcl-2.3.6/html_mono/gcl-tk.html#SEC55
0844デフォルトの名無しさん
2006/01/15(日) 00:02:220845デフォルトの名無しさん
2006/01/15(日) 00:41:22ありがとうございます。
結構使えそうです。
0846デフォルトの名無しさん
2006/01/15(日) 02:04:13> インテリセンス: 80年代からあると思うけど
あればなんでもいいってわけじゃないだろw
開発環境が(良くも悪くも)重厚長大ですげえんだよMSのは。
0847デフォルトの名無しさん
2006/01/15(日) 02:22:14世界の狭い奴だな
0848デフォルトの名無しさん
2006/01/15(日) 04:14:14をすべて保存するようにしたいのですが、
打ち込んだ文字列は、なんていう変数やらストリームに保存されてるんですか?
0849デフォルトの名無しさん
2006/01/15(日) 04:21:200850デフォルトの名無しさん
2006/01/15(日) 04:33:06でも、コマンドラインの変数名も知りたいのです。
わからないでしょうか?
0851デフォルトの名無しさん
2006/01/15(日) 08:15:48それは処理系依存だと思う。例えばAllegroならcommand-line-argumentsという
関数で取れる。処理系のマニュアルを読むべし。
0852デフォルトの名無しさん
2006/01/15(日) 09:38:00しかしあのMSの統合開発環境に太刀打ちできる環境はないな。
0853デフォルトの名無しさん
2006/01/15(日) 09:51:570854デフォルトの名無しさん
2006/01/15(日) 10:18:37敷居を下げたのが功か無能を引き入れたのが罪か。
0855デフォルトの名無しさん
2006/01/15(日) 10:29:100856350
2006/01/15(日) 11:06:09kyoto common lispのコマンドラインの変数名を知りたいのですが、
ネットでは見つかりません。
しらないでしょうか?
0857デフォルトの名無しさん
2006/01/15(日) 11:07:04論よりRUNとか言っているアフォも居るし。
Lispもそんなもんなのか?
0858デフォルトの名無しさん
2006/01/15(日) 11:46:22アホがよって来るから、メール欄に sage って入れてくれ。
0859デフォルトの名無しさん
2006/01/15(日) 14:30:440860デフォルトの名無しさん
2006/01/15(日) 14:37:43ちょっとみたけれどわからず・・・
0861デフォルトの名無しさん
2006/01/15(日) 14:43:09ある。
0862デフォルトの名無しさん
2006/01/16(月) 00:04:230863デフォルトの名無しさん
2006/01/16(月) 01:34:220864デフォルトの名無しさん
2006/01/16(月) 03:23:56誰か知りませんか?
0865デフォルトの名無しさん
2006/01/16(月) 05:06:02GCLならsi:*command-args* みたいな名前の変数だったと思う。
とりあえず、aproposでそれらしい名前を探してみたら?
0866デフォルトの名無しさん
2006/01/16(月) 14:29:040867デフォルトの名無しさん
2006/01/16(月) 16:35:330868デフォルトの名無しさん
2006/01/16(月) 16:38:070869デフォルトの名無しさん
2006/01/16(月) 16:51:22Lispでもオブジェクト指向やれますよって言ってるんだから
0870デフォルトの名無しさん
2006/01/16(月) 17:05:270871デフォルトの名無しさん
2006/01/16(月) 17:22:49括弧
0872デフォルトの名無しさん
2006/01/16(月) 17:35:38まあ、依然としてLispである、ってとこかな。
0873デフォルトの名無しさん
2006/01/16(月) 18:12:170874デフォルトの名無しさん
2006/01/16(月) 18:15:40括弧
0875デフォルトの名無しさん
2006/01/16(月) 18:20:360876デフォルトの名無しさん
2006/01/16(月) 18:27:39最初の質問に戻るかも試練が・・・わかんねーよウワァン。
0877デフォルトの名無しさん
2006/01/16(月) 18:29:170878デフォルトの名無しさん
2006/01/16(月) 18:42:58みつけますた。よんでみます。
ただまとめて印刷できるページがほしかった・・・
0879デフォルトの名無しさん
2006/01/16(月) 20:41:020880デフォルトの名無しさん
2006/01/16(月) 22:37:050881831
2006/01/17(火) 00:03:55Windows上でインストールさせて、
簡単な関数を書いたLispファイルをコンパイルしてみると
おぉ、ECLから.dll .Lib .hファイルを取得できますた
早速C++に組み込んでみようとすると、
..わからん、どうやって引数を渡すんだ?
マニュアルとECLのヘッダーファイルを週末読み込んでみたものの、
わたすの低レベルな頭ではプログラムを走らせることができませんですた
(変換された関数はECL独自の構造体(共有体?)しか受け取ってくれない)
やはりCに書き出すことはできたとしても、
Lisp->Cへの組み込み時において、変換された関数のインターフェースが
問題であることをようやく理解。
そこで今回、Lisp->Cのインターフェースがうまく扱えそうな
LispWorksに方向転換してマニュアルを呼んでます
LispWorksで変換したLispコードをCから呼び出してる人、
使い心地はどうですか?
知ってる人おりましたら、おしえてくらはい。
・・・長文、駄文、あと頭悪くてすいません
0882デフォルトの名無しさん
2006/01/17(火) 00:06:55何で .NET が良いのか、LSharp の何が気に入らなかったのかを書いたら
教えてやらんでもないけど、マイナーな処理系使っても幸せにはなれないよ。
>>876
個人的には REPL の有る無しが大きい。データを直に触りながら書く感じ。
0883デフォルトの名無しさん
2006/01/17(火) 01:11:33メール欄に 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; } に見える.
0884デフォルトの名無しさん
2006/01/17(火) 02:17:35.NETの理由:既存資産があるしライブラリあるから
LSharp以外の理由:LSharpは気に入らなかったのではなく比較のため。
0885884
2006/01/17(火) 02:20:44ライブラリ->マイライブラリ
LSharpは->LSharpを
0886デフォルトの名無しさん
2006/01/17(火) 02:24:04ほい。
http://dotlisp.sourceforge.net/dotlisp.htm
http://www-sop.inria.fr/mimosa/fp/Bigloo/
0887デフォルトの名無しさん
2006/01/17(火) 02:46:43ほれ.
RDNZL - A .NET layer for Common Lisp
http://www.weitz.de/rdnzl/
0888デフォルトの名無しさん
2006/01/17(火) 02:48:57あと、この辺かな。
http://weitz.de/rdnzl/
http://foil.sourceforge.net/
http://bc.tech.coop/blog/040927.html
http://bc.tech.coop/blog/041210.html
http://bc.tech.coop/blog/041216.html
せっかく答えてくれたのに、参考にならなかったらスマソ。
0889デフォルトの名無しさん
2006/01/17(火) 02:50:320890デフォルトの名無しさん
2006/01/17(火) 03:27:55Lisper は環境に合わせて Lisp 処理系を書いてしまうから、向かない物は無いとも言える。
GOOL とか XS Lisp とか LispMe とか Schemix とか。LispM もあったし。
向いてないのは、人月投入してナンボのプロジェクトとかかな。Lisper は希少種だから。
0891デフォルトの名無しさん
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.
http://openmcl.clozure.com/index.html
0892デフォルトの名無しさん
2006/01/17(火) 10:59:580893831
2006/01/18(水) 01:04:30情報サンクス
使い勝手、よさそうですね
マニュアルのページ参照できますた
Personal Editionだとファイル出力できないことがたった今判明。
..約11万かぁ 要検討します
おっしゃるとおり、組み込み系、Lisp共に超初心者です、はい。
Lispは本を1時間よんだくらい。まずは環境整備と思い、現在に至ります。
Cはちょいとかじってます。
言語解析やりたくてLIspはじめようかと。
ついでに質問いいですか?教えて訓ですみません。
CまたはC++に組み込む場合、.DLLに加えて.h,.libファイルが必要ですよね?
マニュアルにこれらの出力関数が見当たらなかったんすけど、
きちんと装備されています?、LispWorks。
まちがい、かんちがいあったらすいません。
宜しくお願いします。
sage気おつけます。2ch書き込みも実は831がはじめて。
0894デフォルトの名無しさん
2006/01/18(水) 01:44:47自然言語解析だとすると LispWorks は日本語対応が UNICODE のみなんで,お
すすめできないなぁ.あんまり日本語処理強くないよ.最終目標はどんなかん
じなの?
> CまたはC++に組み込む場合、.DLLに加えて.h,.libファイルが必要ですよね?
DLL を LoadLibrary して使えます.でも普通は Lisp から C の DLL を呼ぶと
思うけどなー.そっちのほうが資料が充実してるし楽だ.あるいはソケットで
通信とかね.
0895831
2006/01/18(水) 21:35:14情報サンクス
言語解析はそんなレベル高いものではない(と思う)
というのも認知心理学ちょっとやりたくて買った本が
「Lispで学ぶ認知心理学」ってやつ。
そこにでてくるプログラム参考に勉強していこうかと。
ただ、1980年に出版されたもんだからユニコードうんぬんではないのです。
たとえば "NINCHI" "SHINRIGAKU"とかで、全部ローマ字で処理。
文章とかの階層構造を定義したいなぁ、なんて。
ただここの本にでてくる考え方は学んでみたいとおもい、& 組み込み対象が自作のC++プログラム。
っていうかんじです。
引き続き、組み込み向けのLisp、ソケット通信調べてみます。
長文駄文ソマソ。
0896デフォルトの名無しさん
2006/01/19(木) 00:43:18http://clisp.sourceforge.net/impnotes.html#ex-call-in
http://clisp.sourceforge.net/impnotes.html#ex-call-in-dll
http://common-lisp.net/project/cffi/manual/cffi-manual.html#Tutorial_002dCallbacks
0897831
2006/01/19(木) 01:00:17・゚・(ノд`)・゚・ なんでそんなにやさしいんですか?
有難う御座います。
がんばります。
...職場の人だってここまでやさしくない
0898デフォルトの名無しさん
2006/01/19(木) 05:00:560899831
2006/01/20(金) 00:25:21ども。
本には「APPLE LISP」を基準にしているとの記述が。
中まだ呼んでないからわからないけど
defun を DE で記述ますね。
今日は帰りが遅かったからほとんど手付かず。
週末はLisperになりたい。
0900デフォルトの名無しさん
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))))
0901デフォルトの名無しさん
2006/01/20(金) 21:09:46誰か知りませんか?
0902デフォルトの名無しさん
2006/01/20(金) 21:21:08http://pc8.2ch.net/test/read.cgi/tech/1132275726/349
0903デフォルトの名無しさん
2006/01/21(土) 00:10:07メール欄に sage もしくは学生番号を書いたら考えるけど……
0904デフォルトの名無しさん
2006/01/21(土) 00:42:29アフォは無視すれ
0905831
2006/01/21(土) 01:13:44応援サンクス.参考書チェックしてみす。
今度町にでたら立ち読みしなければ。
...ランダム文章作成 ひじょーに博学ですね。
わたすの頭からあれがでてくるよう念じたら いつかでてくるのかな
週末だけのうみそ交換しませんか?
...毎度すいません、教えてくんになってよいですか。
教えて頂いた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 # ...」っていってとまっちゃいます田。
アドバイス頂けませんか?宜しくおねがいします。
0906831
2006/01/21(土) 01:20:28訂正
-----Lispソース(FFI含む)--------------
| インターフェース部を書いたCソースを|------------------------->C/C++で組み込み可能なDLL
| コンパイルしたdll__________________| Clispでコンパイル
--------------------------------------
またずれたら逝きます
0907831
2006/01/21(土) 01:33:09再訂正
1. インターフェース部を書いたCソースをCコンパイラ(VC++)でDLLを作成
2. VCからでできたDLLをLispソースに組み込んで、CLisp(FFIパッケージ使用)でコンパイル。
3. CLispからでてきたDLLをC/C++に組み込む
...すいませんでした。
0908デフォルトの名無しさん
2006/01/21(土) 01:40:25うための仕組みのこと.
CALL-OUT: CLISP から DLL の関数を呼び出す
+-------+ -----> +-----+
| CLISP | | DLL |
+-------+ <----- +-----+
CALL-IN: DLL 内から CLISP の関数を呼び出す
なので,C/C++ に組み込み可能な DLL は CLISP では作れない.ずいぶん
C/C++ にこだわりを持ているようだけれど,ゲームでも作ってそっから Lisp
の機能を呼びたいのかな?
0909デフォルトの名無しさん
2006/01/21(土) 01:46:171. ソケットを使う
2. パイプを使う
3. 共有メモリを使う (CLISP に拡張がいるかな?)
のいずれかの手段が必要です.
0910831
2006/01/21(土) 02:01:40解説、ありがとうございます。
自分、英語苦手なのばれちゃいましたね。
学生のときC/C++で記憶のモデルをつくってますた
へたれな出来だったけど。
へたれソフトには一応それなりに考えて実装しますた。
それはそのままにして、新しい機能をLispで加えられたらと。
当時の研究、あまりいい結果でなかったけど
おもしろかたんで社会にでても時間みつけてつづけてるって感じです。
...素直にLispWorks購入しようかな
0911831
2006/01/21(土) 02:08:25すいません、すれちがっちゃいました。
まずはアドバイスのとおり1,2,3について調べてみます
情報ありがとうございます。
ホント、世話になってます
0912デフォルトの名無しさん
2006/01/21(土) 11:06:07ソースコードもついてたハズなんで見てみれば?
トライアル版とはいえAllegro Common Lispに手を出してしまうとアホらしくて
他の処理系を使う気が失せるが個人で購入するには高すぎて手が出せない罠。
0913デフォルトの名無しさん
2006/01/21(土) 12:30:400914デフォルトの名無しさん
2006/01/21(土) 13:28:16そんなに高くは無いだろ。
0915デフォルトの名無しさん
2006/01/21(土) 22:49:24多少高くても買うんだけどなあ…
0916デフォルトの名無しさん
2006/01/21(土) 23:07:47え?いくらなの? 50 万くらいかと思ってたけど
しかもそれでランタイムライセンスなしみたいな…
俺騙されてた?
0917デフォルトの名無しさん
2006/01/21(土) 23:21:370918デフォルトの名無しさん
2006/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です。
0919デフォルトの名無しさん
2006/01/22(日) 00:05:42The consequences are undefined if literal objects (including
self-evaluating objects) are destructively modified.
本の名前晒せ
0920デフォルトの名無しさん
2006/01/22(日) 00:14:11記述なのかもしれない。>>919の言うように現在のCommon Lispの
仕様としては「不定」が正解。
ただし、動作が不定であるということが明確化されたのはCLtL2から
だからそれ以前の本ならそういう記述があっても止むを得ない。
0921デフォルトの名無しさん
2006/01/22(日) 00:21:24本はこれです。
プログラミング言語Lisp入門からマルチメディアまで ASCII SOFTWARE
http://www.amazon.co.jp/exec/obidos/ASIN/4756139264/
今初めてアマゾンでレビュー見たんですが、
どうやらMacに依存した内容が多いようですね。
上のコードはMacじゃないと動かないという事なんですね。
0922デフォルトの名無しさん
2006/01/22(日) 00:30:39じゃないかな。手元のclispだと、
(setf x '(a b c))
(setf (cdr x) '(1 2))
ならちゃんと通って、x = (A 1 2) になる。元のプログラムだと(setf nthcdr)の未定義
でエラーになる。
0923デフォルトの名無しさん
2006/01/22(日) 00:44:13% ./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 の使い方を書いた本なんで問題無すぃ。
0924デフォルトの名無しさん
2006/01/22(日) 01:20:08Windows以外はまだOSスレッドに対応してないんだっけ。8.0でも変わらないのかな。
0925デフォルトの名無しさん
2006/01/22(日) 02:01:16VB だが。
http://www.cs.stevens.edu/~dlong/vbecl/
0926918
2006/01/22(日) 09:23:08ANSI標準のCommon Lispを勉強したかったんで、別の本を探して見ます。
Common Lispならどの処理系でも同じなのかと思ってました。
0927デフォルトの名無しさん
2006/01/22(日) 10:50:15前は10万円以下のがHPでセールスしてたが今はアカデミック向けのが99ドルで載ってるな。
0928デフォルトの名無しさん
2006/01/22(日) 11:53:28> ANSI標準のCommon Lispを勉強したかったんで、別の本を探して見ます。
仕様には規定されている事とされていない事がある。specified と unspecified ね。
さらに実装依存(implementation-defined)と定義されている事もある:
(例) (disassemble) での表示形式とか
declare で最適化するとかしないとか
は規格で「実装による」と規定されている。だから本 + HyperSpec をつきあわ
せながら勉強してけばいいんじゃね。ANSI Common Lisp (Paul Graham) あたりは
入門にはちょっと難しいと思われ。英語でもがんがる気合いがあるなら
Practiclal Common Lisp がオススメ
>>927
もう卒業したんでアカデミックダメポ…。学生時代はアカデミックが安ければ
いと思っていたけどな。アカデミックが安いだけではダメな事に気がついた。
予算は Win なら MSDN にもってかれちゃうしな。
0929デフォルトの名無しさん
2006/01/22(日) 12:00:57してない.
7 -> 8 の差分ってすごく小さい
0930デフォルトの名無しさん
2006/01/22(日) 13:19:36> >>894
> 情報サンクス
> 言語解析はそんなレベル高いものではない(と思う)
> というのも認知心理学ちょっとやりたくて買った本が
> 「Lispで学ぶ認知心理学」ってやつ。
おおおっ、もしやサンプルがAPPLE LISP でプログラムされているやつでは!
0931デフォルトの名無しさん
2006/01/22(日) 13:28:49実装した処理系ですね。 6502のマシン語で書いたそうです。
メモリの一部がグラフィックメモリと共用なのでガベージコレクションして
いるのが”見えた”ので教育用としても有用だった。
0932デフォルトの名無しさん
2006/01/22(日) 13:48:36をいをい、大西先生じゃねーよ。中西先生な。死んじゃったけど。
0933デフォルトの名無しさん
2006/01/22(日) 15:02:48OpenMCL では本当に問題ないのかなあ。CMUCL や SBCL では
(setf x '(a b c))
(setf y '(a b c))
(setf (cdr x) '(1 2))
(print (list x y))
をコンパイルしてロードすると、リテラルが共有されるため
((A 1 2) (A 1 2))
となるんだけど、そういった想定外のことが起こったりしない?
0934デフォルトの名無しさん
2006/01/22(日) 15:47:12((A 1 2) (A B C))
(proclaim '(optimize (speed 3) (space 0) (debug 0))) しても一緒でした。
OpenMCL が SBCL や CMUCL に比べて遅いと言われてるのは、こういう所からなのかな。
0935831
2006/01/22(日) 23:26:26>>912
情報サンクス
Corman Lisp 調べてみますた。
これ、なかなか使いやすそう。
お値段も 249$ (3万弱?)くらいで手が届く。
サンプルソースから推測するに、
実はこれC/C++に組み込めるのでは?(しかもCとのインターフェース部、自分でも扱えるレベル!?)
ちょいいじってDLL出力させてみたとこ、ヘッダーとDLLでてきますた。
LoadLibraryでVC++から読み込ませたら一応コンパイルは通った。
実行させると ダイアログで 「Cormanなんとか.dll」がなんとかかんとかって言ってた。
お金はらえば、わたすの願いかなうんですかね?
ソケット通信調べる前に、もうちょいいじってみます。
>>925
情報サンクス
ダウンロードさせていただきます田。
時間あるとき、いじらさせて頂きます。
>>930、931
自分、全くの初心者なんでAPPLE Lispのすごさわかりませんが、とても読みやすいと感じますね。
環境整えてからって思ってたけど、今日からこの本を読み恥じめてます。
自分の場合、手段(Lisp)と目的(認知)が同時に学習できますんで、効率的だと思ってアマゾンで購入。
3巻同時に手に入れられたのは運がよかった。
んー ホントにLisperになりたい。
900さんにも言われたとおり、
アルゴリズムに集中して勉強してゆきます〜
0936831
2006/01/23(月) 01:43:11>ちょいいじってDLL出力させてみたとこ、ヘッダーとDLLでてきますた。
訂正:
すいません、勘違い訂正します。
もともとあったexampleフォルダ内で用意されてたtestdll.dllを利用しますた
んー最近すれよごしばかり。
少し書き込み控えます。
0937デフォルトの名無しさん
2006/01/25(水) 00:52:04ACLって成果物(って呼び方でいいんだろか)配布するのに毎年ライセンス料を払い
続けなければいけないらしい。へぇ。だから皆高い高いって言うんだ。
これってGCCで作ったバイナリ勝手に配っちゃダメって言ってるのと一緒でしょ?
間違ってたら訂正願います>詳しい方
0938デフォルトの名無しさん
2006/01/25(水) 01:23:54Lisp そのものになっちゃうからな。配布ライセンスが必要という気持ちも理解
できないことはない。
個人的にはフリーソフトの発展に期待。
0939831
2006/01/26(木) 00:44:57put (putpropもだめ)
unpack (explodeもだめ)
maknam (pack inplodeもだめ)
現在、Corman LIsp使ってます。
これら関数の別名もしくは使い方知っているひといたら教えてください。
>>Corman Lisp使っている人
trace の使い方、教えてください。
・・・教えて訓ですいません
0940デフォルトの名無しさん
2006/01/26(木) 00:51:37それぞれ
setf + get
symbol-name
make-symbol
で代用すべし。つーか、Common Lispの仕様持ってないの?
0942デフォルトの名無しさん
2006/01/26(木) 01:06:13その聞き方じゃ現代 Lisper にはわかんねーよぅ
0943デフォルトの名無しさん
2006/01/26(木) 01:23:25短くていいじゃんと思う俺はきっと汚染されてる
0944デフォルトの名無しさん
2006/01/27(金) 05:11:44(trace 'func)
でトレースしたい関数の記号を引数にとる。
あとは普通にfuncを実行すればトレースの結果が表示される
ところで、いい加減Javaくらいできないとマズいかなと思い
借りてきた本の著者が井田昌之だった
0945デフォルトの名無しさん
2006/01/27(金) 09:56:040946デフォルトの名無しさん
2006/01/29(日) 13:22:00自動的にこちらの指定したlispのコードを実行させるようにしたいのですが、
どうすればいいでしょうか?
0947デフォルトの名無しさん
2006/01/29(日) 13:36:570948デフォルトの名無しさん
2006/01/29(日) 13:59:48そんなのソースをいじらんでもコマンドラインオプションでできねーか?
0949デフォルトの名無しさん
2006/01/29(日) 14:04:100950デフォルトの名無しさん
2006/01/29(日) 16:00:260951デフォルトの名無しさん
2006/01/29(日) 16:29:24課題なんです。
gclのstdinに、lispのコードでもプリントで書き込めばいいのでしょうか?
わけわからん。
0952デフォルトの名無しさん
2006/01/29(日) 16:39:04向上心が少しでも残されてるなら宿題は自分でやれ。
0953デフォルトの名無しさん
2006/01/29(日) 16:50:140954デフォルトの名無しさん
2006/01/29(日) 17:06:54”翻訳”を通すとこうなる。
よくあることなので気に病まないほうがよい。
0955デフォルトの名無しさん
2006/01/29(日) 17:09:21正しい質問場所を見つけるのも課題なのかな。w
0956デフォルトの名無しさん
2006/01/29(日) 17:31:19gclを起動→自動的にlispの関数が実行され、
読み込み状態になる。
を実現しなきゃいけないんです。
処理系弄るの初めてなので、
ちょっと困ってます。
0957デフォルトの名無しさん
2006/01/29(日) 17:35:50そうですか。ちなみに私は困っていません。
0958デフォルトの名無しさん
2006/01/29(日) 18:23:55GCLってとこが致命的だな。いまどきGCLメインで使ってる人ってどれくらい居るんだろ。
普通に考えたらREPL起動前にユーザ定義の処理を走らせるとかその程度のことは処理系が
持ってるはずなんで>>948の言い分を調べてみるのが先決かと。
調べた結果「無い」ってことならそれを実装しろってのが課題の主旨と思われるので
REPLに突入する前に自前のコード突っ込めば終わりじゃね?
0959デフォルトの名無しさん
2006/01/29(日) 18:29:04さすがにスレ違いだと思うよ。
0960デフォルトの名無しさん
2006/01/30(月) 00:02:170961デフォルトの名無しさん
2006/01/30(月) 00:05:06もうちょいまともな聞き方すれば数日前に答えが手にはいったのにな。
ちょっと酷いからスルーしてしまってた。
1. まず hogehoge.lisp ってファイルをエディタでつくる。
% vi hogehoge.lisp
2. -load オプションをつかって gcl を起動する
% gcl -load hogehoge.lisp
最近の GCL ならこれで gcl が起動し hogehoge.lisp を読み込まれる
もし本当に GCL を改造しろという課題なら 2ch でダメダメな質問してる時点
で自力で解くのは諦めたほうがいい。クラスのできそうなやつに飯でもおごる
とかしてやってもらうのが唯一の方法だろ。
>>958 行動を選択してください [A/B/C]
A. 知りたい事がわかったので礼も言わずに消える
B. 礼を言って消える
C. 回答が的はずれだ俺の知りたい事はxxxxとかいいだす
0962デフォルトの名無しさん
2006/01/30(月) 00:14:34もう超能力で補うしかねぇな。まっとうなところなら
A. GCL のオプション設定を ini ファイルで指定できますか?
→ コマンドラインからの ni ファイルの解析を自分でやらないと標準で ini ファイル
B. GCL で ini ファイルを読み書きするライブラリは標準でついていますか?
→ ついてません。ini ファイルの読み書きがしたい場合は自力でなんとかしてください。
C. GCL で ini ファイルを読み書きする事は可能でしょうか?
→ 自分で処理を書く、Win32API を呼び出すなどすればできます。が C でini が扱える程度の技術が必要です。
どれか当ってねぇかな〜と期待
0963デフォルトの名無しさん
2006/01/30(月) 00:22:34gclを起動したら、初期設定ファイルを読み込んで、
こちらの指定したコードを実行させるようにはできないかと思ったのです。
schemeではiniファイルを読ませることができたので。
どうすればいいですか?
0964958
2006/01/30(月) 00:30:10ほんじゃ>>961 の回答は以下でファイナルアンサーってことでよろしく。
D. 誰か次スレ立ててね はぁと(w
あと質問してる人、sage覚えてね。
0965デフォルトの名無しさん
2006/01/30(月) 00:36:19どうみても誤爆です。
拙者責任をとって切腹つかまつるゆえ次スレは立てられませぬ。
0966デフォルトの名無しさん
2006/01/30(月) 00:38:39このスレ使いきるまで一年以上かかってるし、本スレに合流でいい。
0967デフォルトの名無しさん
2006/01/30(月) 00:49:46> 本当に GCL を改造
main関数をmain2とかに改名して、
argcとargv弄るだけ…でいいんだろうか。
それだと学校の課題としては変だよなぁ…。
0968デフォルトの名無しさん
2006/01/30(月) 00:54:34気になるから誰か課題の全文をウプ汁。
おじさんが模範解答を作ってやる。
0969デフォルトの名無しさん
2006/01/30(月) 01:18:05過疎化したスレのリサイクルにご協力をお願いします。
【一日】CommonLisp【一門】
http://pc8.2ch.net/test/read.cgi/tech/1106587515/
0970963
2006/01/30(月) 01:22:43「他のcのプログラムから、gclのmain関数を呼び出し、
その時点で、こちらの指定したlispのコードが実行され、
ユーザの入力待ち状態にすること」
です。
0971デフォルトの名無しさん
2006/02/01(水) 01:50:05ほんとにそんなダメ日本語な問題なのか?思い込みで解釈せずに正確に写せ。
あと Mail 欄には sage と入力してください。それができたら解答する。
0972デフォルトの名無しさん
2006/02/02(木) 03:22:43>
> * lisp-kernel/freebsd8664/: Makefile, elf_x86_64.x: New files.
>
> FreeBSD make (and gmake) both want to rebuild all .s files, but
> this otherwise seems to work.
FreeBSD にも対応するのかな。
0973デフォルトの名無しさん
2006/02/04(土) 02:32:09ようにしたいのですがお勧めの処理系はどれになりますか?
LispからC/C++を呼び出す例はいろんな処理系でドキュメントが整備されてますが
逆はあまりやられてないようなので。ECLがC/C++との親和性が高いかなと思っていじって
いるんですがどの程度規格に準拠してるかとか、いまのライブラリがそのまま
コンパイルできるかなとか疑問な点がまだ多いので識者の意見をお聞かせいただければ、と。
0974デフォルトの名無しさん
2006/02/07(火) 04:04:49最初なんじゃこりゃ頭いてーと思ったけど
これ結構おもすれー(^ω^)
0975デフォルトの名無しさん
2006/02/13(月) 23:01:02おもすれー
おもすれー
0976デフォルトの名無しさん
2006/02/14(火) 16:39:010977デフォルトの名無しさん
2006/02/14(火) 19:36:49JAVAからclispを呼び出すのに使える
0978デフォルトの名無しさん
2006/02/14(火) 19:48:30それには気がつかなかった
0979デフォルトの名無しさん
2006/02/14(火) 21:49:00目からうろこが(ry
ま、clispがjavaから呼べてもLISPを使用しなければならない
業務処理が思いつかん。
やhり無駄なものを作ってしまったか。
0980デフォルトの名無しさん
2006/02/14(火) 21:55:01そうなると Lisp 自体も Java VM 上で動かして、高速に相互呼び出しできる
ようにしたくなるね。
0981デフォルトの名無しさん
2006/02/14(火) 21:58:040982デフォルトの名無しさん
2006/02/14(火) 22:37:55それってjavaでlispの処理系を書くということ?
どこかにありそうな気がするな。
基本的にjarかなんかでjavaコードの中でlispコードが
走れば最高なんだけどな。
XMLのパースとか楽になるんだが。
0983デフォルトの名無しさん
2006/02/14(火) 22:40:37それが >>981(http://armedbear.org/abcl.html) です...
0984デフォルトの名無しさん
2006/02/14(火) 23:03:52すごいねコレ。
早速使ってみるわ、thx
0985デフォルトの名無しさん
2006/02/14(火) 23:10:57compileすれば早くなる?
0986デフォルトの名無しさん
2006/02/14(火) 23:16:04テキストエディタに使われているくらいだから、そんなに遅くはないと
思いたいけど。
http://armedbear-j.sourceforge.net/
JavaVM の起動とクラスのロードに時間が掛かってるとかじゃなくて?
0987デフォルトの名無しさん
2006/02/14(火) 23:21:24それだ。
別のVMを起動するのに時間がかかっているのか。
同一VMで動くようにすれば早そうだ。
0988デフォルトの名無しさん
2006/02/14(火) 23:53:28別の VM を起動したりはしないと思うよ。初回だけ妙に遅いね。
% ./abcl
Armed Bear Common Lisp 0.0.9 (built Tue Feb 14 2006 23:40:55 --900)
Java 1.4.2_09 Apple Computer, Inc.
Java HotSpot(TM) Client VM
Low-level initialization completed in 2.388 seconds.
Startup completed in 9.052 seconds.
Type :HELP for a list of available commands.
CL-USER(1): (time (format t "hello, world~%"))
hello, world
5.287 seconds real time
62770 cons cells
NIL
CL-USER(2): (time (format t "hello, world~%"))
hello, world
0.0020 seconds real time
67 cons cells
NIL
CL-USER(3):
0989デフォルトの名無しさん
2006/02/15(水) 00:54:59クラスライブラリのロードか何かだろう。
Armed Bear Common Lisp 0.0.9 (built Wed Feb 15 2006 00:49:19 --900)
Java 1.5.0_04 Sun Microsystems Inc.
Java HotSpot(TM) Client VM
Low-level initialization completed in 0.563 seconds.
Startup completed in 2.172 seconds.
Type :HELP for a list of available commands.
CL-USER(1): (time (format t "hello, world~%"))
hello, world
1.203 seconds real time
62770 cons cells
NIL
CL-USER(2): (time (format t "hello, world~%"))
hello, world
0.0 seconds real time
67 cons cells
NIL
CL-USER(3):
0990デフォルトの名無しさん
2006/02/15(水) 01:19:54どうすれば・・・いいんでしょう
F:\abcl-0.0.9\examples>javac hello.java
hello.java:1: パッケージ org.armedbear.lisp は存在しません。
import org.armedbear.lisp.*;
^
hello.java:8: シンボルを見つけられません。
シンボル: クラス Interpreter
場所 : hello の クラス
Interpreter interpreter = Interpreter.createInstance();
^
hello.java:8: シンボルを見つけられません。
シンボル: 変数 Interpreter
場所 : hello の クラス
Interpreter interpreter = Interpreter.createInstance();
^
エラー 3 個
0991デフォルトの名無しさん
2006/02/15(水) 01:38:37cd examples
javac -classpath ../abcl.jar hello.java
java -classpath ../abcl.jar;. hello
みたいな感じで動いたよ。
0992デフォルトの名無しさん
2006/02/15(水) 01:46:49おお!動いた、動きましたありがとう!
0993デフォルトの名無しさん
2006/02/15(水) 13:05:42Interpreter interpreter = Interpreter.createInstance();
LispObject obj = interpreter.eval("(print (directory \"c:/\")");
これが動かない理由が分からない。
XYZZYだと動くんだが。
0994デフォルトの名無しさん
2006/02/15(水) 13:54:15Common Lisp の仕様判ってる?
xyzzy なんて方言を持ち出されても・・・
0996デフォルトの名無しさん
2006/02/15(水) 20:17:09大馬鹿発見!!
0997デフォルトの名無しさん
2006/02/15(水) 20:18:530998993
2006/02/15(水) 20:59:40主にjavaしか触らないので言語仕様は良くはしらないが、
XYZZYとは微妙に違うということは解った。
>995
あんた誰?
0999993
2006/02/15(水) 21:12:49合致する全てのファイルを削除するlisp式ってどう書きます?
1000デフォルトの名無しさん
2006/02/15(水) 21:21:35(fad:walk-directory
#p"/home/onjo/tmp/" ;; ディレクトリを指定
#'(lambda (p)
(when (string-equal (pathname-type p) "txt") ;; 条件判定
(fad:delete-directory-and-files p))))
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。