【入門】CommonLisp【 ..
175:デフォルトの名無しさん
04/12/27 19:55:00
問題はdefmacroの扱い方以前に、defunでもdefmethodでも
defclassでもdefgenericでもいいのだが、それらをクラス図で扱うと言うの
なら、UMLをLisp用に拡張しなければならないということだ。
言語事態があまりにもC#やJAVAとはかけ離れすぎているから、
メタクラス使って拡張してXMI対応もしなければならない。
これを三人(私+新人二人)で、一月ではキツくねぇだろうかと、
思った次第(このtool自体をLispで書けは流石に無茶だろう)。
176:デフォルトの名無しさん
04/12/27 23:58:31
>>175
ふと思ったんだが、その課長さんUMLとXMLと勘違いしていないかい?
どっかで「LISPでプログラム書いてXMLに変換するのはナウいですよ」とか言われて...
課長さん、忘れない様にブツブツ言いながら帰ってくる途中に
XML XML XML ... <地下鉄の中><居眠り><ドトールでコヒー> ... UML UML UML
ってなぐあい。あり得ないかもしれんが、そうであることを君のために祈っているよ(笑
177:デフォルトの名無しさん
04/12/28 08:20:49
>UMLをLisp用に拡張しなければならないということだ
やってみたら?
もし出来たら発表してよ。
178:デフォルトの名無しさん
04/12/28 23:27:44
仕事で使うものをここで発表なんかするかよ
179:デフォルトの名無しさん
04/12/31 07:25:57
arcっていつ出るの?
180:デフォルトの名無しさん
04/12/31 08:20:24
arcはグラハムの脳内言語ですが何か?
奴に処理系作る時間は無いかと
181:デフォルトの名無しさん
04/12/31 09:29:01
じゃあグレアムは普段何やってんだろ。
働かなくても食っていける資産はあるだろ。
まさかエッセイばかり書いているわけでもあるまい。
182:デフォルトの名無しさん
04/12/31 10:33:04
グレアムって誰?
183:デフォルトの名無しさん
04/12/31 10:50:40
Paul Graham
ポール グレアム
ポール グラハム
どっちが正しい?
184:デフォルトの名無しさん
04/12/31 10:51:18
つか、香具師はフランス人?
185:デフォルトの名無しさん
04/12/31 11:15:02
アメリカのLisperと話す時は「グレアム」で通じるけど。
「グラハム」って呼んでる人は会ったことない。
186:デフォルトの名無しさん
04/12/31 12:04:25
グリィォムだな。
187:デフォルトの名無しさん
04/12/31 12:14:09
∧_∧
(゚∀゚ )ー┐ グレアムグレアム!
しヽ し′
彡 > 彡)
/ / /
(_(__)
∧_∧
┌ー( ゚∀゚)グレアムグレアム!
丶J /J
( ミ < ミ
丶 丶 丶
(__)_)
188:デフォルトの名無しさん
04/12/31 13:08:55
食べすぎの日記にも出てきませんね.
資産があって暇なら数値計算にも手を出して,文書を書いて欲しいです.
189:デフォルトの名無しさん
05/01/01 03:48:01
奴はLISP処理系を1から作るなんてことはしない
CommonLispのラッパーみたいなので済まそうと考えてるヘタレ
どう見てもarcは破綻してるだろ
190:デフォルトの名無しさん
05/01/01 04:52:28
arcってよく知らんのだが、CLと何が違うの?
ラップでもなんでもいいんだが、ただの方言でしかないのか?
191:デフォルトの名無しさん
05/01/01 05:19:25
>>190
URLリンク(www.paulgraham.com)
URLリンク(www.paulgraham.com)
この辺を読んでイメージをつかんでくれ、と言いたいところだけれど、
原理的なところと実用的なところの話がごっちゃに出てきてて、
いまいちはっきりしないのは確かだな。
一応、かつて上記のを読んで印象に残ってるのは、
名前空間はひとつ、てのとマクロをオプションで実行時展開できるようにする、
て話かなあ、CL と違うってことだと。
まあ、基本的には Lisp は Lisp なんで糖衣構文で何とかならない?
的なネタもある、というか多いけれど。
あとはインデントに構文的な意味を与える、とかもあったかな。
192:デフォルトの名無しさん
05/01/01 23:09:28
おめーらがやってる批評もどきのRubyに対する足引っ張りはな、
十把一絡げの愚図Java,C++,Perlみたいなカス言語フリーク野郎が
Ruby作者matzのような結果を出した人間と自分との格差を認められず
おこがましくも精神的に一矢報いようとするために
仰々しく「批評」とか名付けた浅ましい自己主張で攻撃して
自尊心を慰めてるにすぎない。
実際問題として、お前みたいな奴が考えてるほど
批評された側の役に立ってるわけがないだろ?ボケが。
その口から出るクソが誰かに感謝でもされたか?ああ?
自意識過剰甚だしいんだよ、この自己愛のボケ奴隷が。
数倍マシ?寝言は寝て言えよこの恥知らず野郎。
ネットで万能感むき出しにしてオナってんじゃねーよ。
批判する野党が重要だぁ?プ
公明党にでも投票してろ白痴野郎。
193:デフォルトの名無しさん
05/01/03 01:01:18
>>192
A: 誤爆
B: 編集忘れ
C: スクリプト
D: 釣り
正解はどれ?
194:デフォルトの名無しさん
05/01/03 01:30:56
どっかで見た
E: コピペ
195:デフォルトの名無しさん
05/01/03 13:05:40
LispでSOA出来ますか?
ようはLispでSOAPが出来ますか、と言うことですが。
196:デフォルトの名無しさん
05/01/03 13:39:15
LISPは完成された言語である。
故にSOAP対応なんてする必要がない。
去れ、邪教徒よ。
197:デフォルトの名無しさん
05/01/03 23:02:34
lisp や scheme で数値計算をするにあたって,どんなライブラリがありますか?
octave 並に楽に書けると嬉しいです.
(let* ((time (linspace 0, 1, 128))
(y (cos time)))
(Y (ffi y))
...
みたいな.
;; slib の plotting はジョーク?
198:197
05/01/03 23:32:44
スマン.matlisp というのが cliki にありました.
どちらかというと,Windows でも良い処理系がある scheme の方が
ポータビリティ (?) がいいのかな?
199:デフォルトの名無しさん
05/01/04 00:30:52
金に糸目をつけなければCommon Lispにもあるんでない?
200:デフォルトの名無しさん
05/01/04 08:18:14
>>196
完成って・・・
SOA対応でlispからSOAの手軽な実装方法とか出せたら、
今のC#とかJAVAに取って代われるかもしれないぞ?
201:デフォルトの名無しさん
05/01/04 23:09:04
>今のC#とかJAVAに取って代われるかもしれないぞ?
なんか今年の初夢みたいな話だな(笑
202:デフォルトの名無しさん
05/01/06 06:53:58
決心した。
ACL7.0を買う!!
203:デフォルトの名無しさん
05/01/06 07:02:20
>>202
俺にも(ヽ゚д)クレ
204:デフォルトの名無しさん
05/01/08 20:07:47
WINDOWS環境です。
CLISPのバイトコードをJAVAとかVC++から呼ぶことは出来ますか?
またCLISPからC++やJAVAを呼ぶことは出来ますか?
JYTHONみたいにJAVAのクラスをぞのまま呼べるCLの環境とか
ありますか?(これは流石にないか)
205:デフォルトの名無しさん
05/01/08 20:34:26
できません(バイトコードのフォーマットが違います)
できません(exeにすれば実行はできるかもしれません)
できません
206:デフォルトの名無しさん
05/01/09 01:36:21
ACL
207:デフォルトの名無しさん
05/01/09 02:06:49
>>204
Java と連携したいなら ABCL とか。
URLリンク(armedbear-j.sourceforge.net)
URLリンク(www.cliki.net)
JFLI が LispWorks 以外で動くのを気長に待つとか。
URLリンク(jfli.sourceforge.net)
;; どっちも使ったこと無いけど。
208:デフォルトの名無しさん
05/01/09 10:10:14
>>207
サンクス〜〜
つかjfliは凄くないかい?
ぱっと見はJYTHONを超えてるよ。
ま、見た目なんだが。
209:デフォルトの名無しさん
05/01/09 11:15:28
>>204
> またCLISPからC++やJAVAを呼ぶことは出来ますか?
これは,c++ のヘッダファイルを読んで defclass するってことですか?
c++ で作った共有ライブラリを clisp で呼ぶことはできますね (って知ってるかorz).
210:デフォルトの名無しさん
05/01/09 11:17:36
>c++ で作った共有ライブラリを clisp で呼ぶことはできますね (って知ってるかorz).
・・・・・・・・・知らないです。
CLISP歴2時間なんで.....orz
211:デフォルトの名無しさん
05/01/09 11:35:09
Java との連携なら、Bill Clementson の Blog にまとまってるよ。
URLリンク(lwn.net)
URLリンク(home.comcast.net)
Rich Hickey って素敵な名前だな。あやかりたい・・・。
212:デフォルトの名無しさん
05/01/09 14:07:07
Lispマシンについて興味あります。
ちょっとづつ調べているんですが、質問させてください。
1.Lispマシンは現在販売されているのでしょうか?
2.LispマシンはOSもLisp実装なのでしょうか?
3.趣味で作ってみたい(FPGL+VHDL)と思ってますが、
同様に挑戦された方の記録をご存知でしたら教えて
ください。
213:デフォルトの名無しさん
05/01/09 14:25:05
>>212
似た事をしている人なら居るよ。
URLリンク(common-lisp.net)
本物の Lisp マシンは GC を H/W でやってたらしいね。
214:デフォルトの名無しさん
05/01/09 16:36:56
URLリンク(pocket.free.fr)
これもある意味 LispM かな。ちょっと欲しいかも。
215:デフォルトの名無しさん
05/01/09 17:54:01
>>213,214
さっそくのレスありがとう。
>>213
GCもハードですか・・・
さすがLispマシンですね。
教えていただいたページを読んでみます。
英語・・・なので、読むの時間がかかりそうですが・・・(^ ^;
>>214
HPを見たのですが、Lispという記述がみつからなかった
のですが、ソフトはLispで実装されているのですか?
216:デフォルトの名無しさん
05/01/09 18:25:59
>>215
AI-1000 についてはここら辺を見て下さい。
URLリンク(www2b.biglobe.ne.jp)
URLリンク(www6.plala.or.jp)
URLリンク(jp.franz.com)
以前 Lisp スレで話題に上がっていた LispM エミュレータ。
URLリンク(www2.parc.com)
URLリンク(www.heeltoe.com)
(medley は Solaris で動きました。
URL はここ経由です。 URLリンク(lambda.s55.xrea.com))
217:デフォルトの名無しさん
05/01/10 11:22:37
>>216
わざわざありがとうございます。
2年位かけて自分だけのLispマシンを作るつもりです。
最終的にはハードも自作できたらいいなと思っています。
なにぶん初心者なので、まずは教えていただいたMovitzを
いじって簡単なOSをつくるところから始めたいと思います。
では、なにか成果がありましたらご報告します。
218:デフォルトの名無しさん
05/01/10 19:26:21
>>217
なんか、往年のX68000ユーザみたいなこと言うね。その姿勢は好きなんで頑張ってね。
219:デフォルトの名無しさん
05/01/11 23:17:57
MorphyOneの二の前になりそうな悪寒
220:デフォルトの名無しさん
05/01/12 00:39:53
失敗しても誰にも迷惑かからないんだからいいんじゃないの?
221:デフォルトの名無しさん
05/01/12 00:45:56
>>219
懐かしい…
222:デフォルトの名無しさん
05/01/13 12:29:28
>>187 ちゃんと括弧閉じろよ
223:デフォルトの名無しさん
05/01/13 18:31:13
>>219
>MorphyOneの二の前になりそうな悪寒
二の前は一?
224:デフォルトの名無しさん
05/01/15 19:36:40
lispでservletみたいなことってできないの?
225:デフォルトの名無しさん
05/01/20 06:38:16
>>224
余裕でできる。 aserve でググれ。
226:デフォルトの名無しさん
05/01/20 21:16:56
aserver落としてきた
でもコンパイルできない
faslが作れん
何故だ?
227:デフォルトの名無しさん
05/01/21 01:33:31
ぼうや(rya
228:デフォルトの名無しさん
05/01/21 07:01:25
>>226
aclはデモ版か?
(sys:update-allegro)とかちゃんとやっとけや(゚Д゚)ゴルァ!
229:デフォルトの名無しさん
05/01/21 22:42:08
updateしてんだけどなぁ。。。
何故かコンパイル中に強制終了する
やり方間違っていんのかなぁ?
230:デフォルトの名無しさん
05/01/22 00:39:16
226はaserverって書いてるけどAllegroServe(aserve)のことか?
「落としてきた」って書くからにはACL突っ込むと勝手にインストールされる奴じゃ
なくてPortable AllegroAserveをコンパイルしようとしてるってこと?
いずれにしても、処理系のバージョンとかプラットフォームとかどんな症状なのかとか
もちっと詳しく書けや。エスパー募集中ならそれも書いとけ。
231:デフォルトの名無しさん
05/01/22 04:32:22
>>230
環境はWinXPにACL6.2TrialでaserverはAllegroServeを落としてきた。
んで、faslがないからコンパイルしたら途中で異常終了する。
こんなところ。
232:デフォルトの名無しさん
05/01/22 06:58:02
型書いたらちゃんと最適化してくれる?
関数の入り口に型書いたらちゃんとその型以外はブロックしてくれる?
気になって夜も練れません
233:デフォルトの名無しさん
05/01/22 06:59:28
関数の戻り型ってどう書くの?
つーか書けるの?
こうして朝を迎えました
234:デフォルトの名無しさん
05/01/22 07:12:55
JAVAみたいにpackageってあるの?
ありそうなんだけど、書き方がわからない
自分で定義した関数や変数を自前のpackageに入れるってできますか?
235:デフォルトの名無しさん
05/01/22 08:46:33
>>232
> 型書いたらちゃんと最適化してくれる?
言語仕様上は要求されていないが、最適化してくれる処理系は存在する。
> 関数の入り口に型書いたらちゃんとその型以外はブロックしてくれる?
当て推量だが、あなたが意図しているようなのは通常の関数にはないかも。
ジェネリック関数は、引数の型による自動エラー報知機能を持っていると
考えてもいいかな。
普通にコーディングしていれば、型宣言をしなくても、予想外の型に対して
変なことをしようとすれば実行時にエラーとなり、コード上でそれを捕捉可能。
型宣言をしておくと、賢いコンパイラは、型やぶりな関数呼び出しだと推論
できたときは警告やエラーを発するものもある。たとえば(car 1)などね。
236:デフォルトの名無しさん
05/01/22 08:51:19
>>233 関数の戻り型ってどう書くの?
URLリンク(www.lispworks.com)
(declare (ftype (function (number) float) sine))
237:デフォルトの名無しさん
05/01/22 08:55:23
>> 234
> JAVAみたいにpackageってあるの?
Javaと同等なものかは分からないけど、パッケージはある。
> ありそうなんだけど、書き方がわからない
> 自分で定義した関数や変数を自前のpackageに入れるってできますか?
できる。英語が読めるんなら、最近はネットで入門書がごろごろしていると思うよ。
238:デフォルトの名無しさん
05/01/22 09:03:51
>>234
たとえば、「Practical Common Lisp」の
21. Programming in the Large: Packages and Symbols
URLリンク(www.gigamonkeys.com)
とかね。俺は読んで無いんで内容の保証はできんけど。
239:デフォルトの名無しさん
05/01/22 10:28:26
>>234
Lispのインタラクティブな環境でパッケージを移動して作業してみると、
パッケージってのが単なる名前空間って事が感覚として良くわかる。
240:デフォルトの名無しさん
05/01/22 17:37:47
>>231
acl 起動して
(require :aserve)
して、
c:\Program Files\acl62-trial\examples\aserve\examples.cl
をロードして、
(net.aserve:start :port 7777)
して、
URLリンク(localhost:7777)
を開く。
241:デフォルトの名無しさん
05/01/22 18:44:27
$599のACL7ってどの程度のものなんでしょうか?
個人でちょっと勉強がてらに使うことを考えているのですが?
めちゃくちゃ制限があるのでしょうか?
242:デフォルトの名無しさん
05/01/22 19:25:39
このスレの住人は、LISPでどんな「問題」を解いているんですか?
つーか、みんな院生?
243:デフォルトの名無しさん
05/01/22 19:26:46
Lispでお洗濯物問題とお夕飯問題を解決しました!
244:デフォルトの名無しさん
05/01/23 01:48:12
>>240
動いたよ〜ありがとう♪
しかし、なぜfaslが作れなかったのか・・・
245:デフォルトの名無しさん
05/01/23 02:26:31
(defun func()(* 12 12))
func
(defpackage "my-package"
(:export "FUNC"))
funcという関数をmy-packageにexportしたいんですが、defpackageでエラー
になります。何が間違ってるんでしょうか??
246:デフォルトの名無しさん
05/01/23 09:21:45
>>245
CL-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]
247:デフォルトの名無しさん
05/01/23 09:23:55
246の続き。
CL-USER> (shadowing-import 'my-package:func) => T
CL-USER> (func) => 144
248:デフォルトの名無しさん
05/01/23 09:36:56
>>245 あっと、意図を汲み間違えた。cl-user::funcをmy-package内へimportしたいのね。
CL-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
249:デフォルトの名無しさん
05/01/24 03:32:45
>>248
ありがとうございます。出来ました。
これってC++とかのnamespaceと似たようなものと考えていいんでしょうか?
C++だと自作のutilityとかを
namespace my_util{.....}
とかしてるんですが、LISPでは作法的にどうなんでしょうか?
250:デフォルトの名無しさん
05/01/24 04:12:25
なんか初心者用に問題でも出してやればいいんじゃない?
一日一問でさ
251:デフォルトの名無しさん
05/01/24 06:42:26
lispのVMって無いの?
apatchでlispとか使えないのかな
(個人的にはACLとか大規模なもんじゃなくてclispやxyzzyとapatchが
連携できればいいのになぁ、と思っている)
252:デフォルトの名無しさん
05/01/24 07:47:09
>>249
C++の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と書けます。
253:デフォルトの名無しさん
05/01/24 07:56:02
>>251 Unix系のOSなら、mod_lispというapatchモジュールが存在して、
CGIプログラムをLisp(cmucl, clispなど)で書いたりということが簡単にできるらしい。
Windowsに関しても、Windows用のバイナリがmod_lispの開発もとにあったから、
できるでしょう。たぶん。
254:デフォルトの名無しさん
05/01/24 10:32:14
JAVA初心者です
swingを使用して、clispを使用した開発環境を
作りたいと思っているのですが、swing側で入力したs式をclispに渡すには
どうすればよいのでしょうか?
また、clisp側での評価結果をswing側に返すには
どうすればよいのでしょうか?
ご存知の方いらっしゃたら教えてください
お願いします
255:デフォルトの名無しさん
05/01/24 12:37:12
Jabberwocky: javaで書かれたlisp IDE
URLリンク(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: URLリンク(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.
256:デフォルトの名無しさん
05/01/24 15:07:03
>>253
mod_lispは外部のプロセスと通信する単なるスタブみたいなもん。
プロトコルを守れば、好きなLisp実装が使えるし、別にLispで無くたっていい。
257:デフォルトの名無しさん
05/01/25 02:26:20
>>250
ほい
スレリンク(tech板)l50
258:デフォルトの名無しさん
05/01/25 08:48:52
(ノ∀`)アチャー
自作自演乙
259:デフォルトの名無しさん
05/01/26 09:48:40
(defun func()
(setq a 0)(setq a(+ a 2)))
という関数を定義すると、
(func)->2
となります。ここまではいいんですが、次に
(func)->4
になります。
関数の中で定義した変数はstaticなんでしょうか?
関数ローカルな変数が初期化されないのが不思議です。
260:デフォルトの名無しさん
05/01/26 10:20:15
ククク・・・
どっか外のaが潰れてるだけだよ
261:デフォルトの名無しさん
05/01/26 10:58:51
>>259
Rubyかなんかと間違えてるのではなかろうか。
aは関数ローカルな変数なんかにならないよ。
そういうものが欲しければletを使って束縛しろ。
それはそれとして、2回目が4になるって変じゃないか?
何回やろうが0+2=2になるはずだが。
262:デフォルトの名無しさん
05/01/26 15:43:38
mapcanの選別収集以外の使い途があるとでもいうのですか?
263:デフォルトの名無しさん
05/01/26 19:28:14
複数リストの統合とか。
264:デフォルトの名無しさん
05/01/26 19:36:10
(mapcan #'list '(key0 key1 key2) '(value0 value1 value2))
=> (KEY0 VALUE0 KEY1 VALUE1 KEY2 VALUE2)
265:デフォルトの名無しさん
05/01/26 23:06:52
mapc ってマップクって呼んでOK
266:デフォルトの名無しさん
05/01/27 03:13:58
lispでプログラムを書けという課題がでました。
ωを自然数のリストとする。
MAX(ω)=0(ωがNILのとき) ωに含まれる最大の数
例ω=(8,13、25、10)のときMAX(ω)=25
組み込み関数
LESSTHAN(n,m)=T(n<m) NIL(n≧m)を使用すること。
もしよろしければ教えていただけないでしょうか?
どーも基礎がよくわかってないみたいで・・・
267:デフォルトの名無しさん
05/01/27 05:04:48
2chではなくて、学内のお友達と相談しながら
解決するのがよろしいかと。
268:デフォルトの名無しさん
05/01/27 09:16:18
(defun MAX (ω)
(if (null ω) 0
((lambda (n m) (if (LESSTHAN n m) m n))
(car ω) (MAX (cdr ω)))))
269:デフォルトの名無しさん
05/01/27 12:59:45
マクロって関数みたいに変数に代入できないの?
(defmacro macro()())
(setq m 'macro)
(a)->error
呼べないのかな
270:デフォルトの名無しさん
05/01/27 13:15:32
(a)->error 間違い×
(m)->error
271:デフォルトの名無しさん
05/01/27 13:17:39
(defmacro foo (x) `(car ,x))
(setq a (macro-function 'foo))
(funcall a '(foo a) nil) => (CAR A)
272:デフォルトの名無しさん
05/01/27 16:11:34
windowsで動くcmuclが完成したら、ソフトウェア業界は
変わる、と思っていますが正しいですか?
273:デフォルトの名無しさん
05/01/27 16:14:28
>272
実現可能性とシナリオは?
市場アクションは?
274:デフォルトの名無しさん
05/01/27 16:32:14
age
275:デフォルトの名無しさん
05/01/28 07:58:09
Clisp使ってます。
Clispってパイプありますか?
276:デフォルトの名無しさん
05/01/28 09:07:27
>>275
30.8.2. Pipes
URLリンク(clisp.cons.org)
277:デフォルトの名無しさん
05/01/28 10:27:48
>>273
ごめんなさい
278:デフォルトの名無しさん
05/01/29 19:30:21
(setq data '(1 2(3 4(5))))
(length 'data)->error
(length '(1 2(3 4(5))) )->3
なぜ・・・?データとしてはまったく同じリストだと思うんですが
279:デフォルトの名無しさん
05/01/29 19:49:12
(length 'data)のquoteが余分ですだ。だんなさま。
280:デフォルトの名無しさん
05/01/29 19:56:15
サンクスです
ということはlengthってマクロですか
281:デフォルトの名無しさん
05/01/29 20:26:28
>>280
ハァ?
シンボルにlengthを適用しようとしたからエラーになってるんだぞ?
282:デフォルトの名無しさん
05/01/29 20:42:35
そうか・・・勉強してくる
283:デフォルトの名無しさん
05/01/29 21:20:19
次の患者さんどぞ〜
284:ウエシマ
05/01/30 08:23:10
毛が抜けるんですが・・・
285:デフォルトの名無しさん
05/01/30 10:13:31
抜けるだけの毛があったことに感謝なさい。
286:デフォルトの名無しさん
05/01/30 15:51:35
・おなにーを控える(多くても週一ぐらい)
・タバコをやめる(ただしやめることでストレス増加なら逆効果)
・2日に一回は頭を洗ってマッサージし頭皮を清潔にする
・生活リズムを整える(徹夜しない)
・風の強い場所に長くいない(そゆときは帽子着用)
・暑い場所に長くいない(タオルで小まめに汗をふき取る)
・ストレスを溜めず、感情的にならない
・水泳するときは帽子着用(プールの水は髪にあまりよくない)
287:デフォルトの名無しさん
05/01/31 10:50:36
コンパイルしたらJAVAのクラスになるようなCLの処理系って
ありませんか?
288:デフォルトの名無しさん
05/01/31 22:54:47
Allegro JILとLinjくらいしか知らない。他にもあるんだろなぁ、Lisperは何でも作っちゃうから。
289:デフォルトの名無しさん
05/02/01 11:26:22
>>288
ありがとございます
Allegro JILとか機能的に便利だけど、金かかるのか。。。
買うしかないかなぁ
290:デフォルトの名無しさん
05/02/01 20:54:30
そろそろでつね。行く人れぽよろ
URLリンク(jp.franz.com)
291:デフォルトの名無しさん
05/02/02 20:10:19
xyzzyでLispモードを使用する時、Lispの予約語の
インテリセンスってどうやればよいのでしょうか?
292:デフォルトの名無しさん
05/02/02 20:11:27
誰かtuareg-modeをxyzzyに移植してください
293:デフォルトの名無しさん
05/02/02 20:31:44
>>291
Lispには予約語はありません。
294:デフォルトの名無しさん
05/02/02 20:45:30
(defun foo()())
<foo>
(undefun 'foo)
<undefun-foo>
のような一度defunしたものをリリースするundefunのような
関数ってCLにありますか?
295:デフォルトの名無しさん
05/02/02 20:51:48
intern
unintern
296:デフォルトの名無しさん
05/02/03 00:02:20
>>293
()は予約記号。
297:デフォルトの名無しさん
05/02/03 01:00:32
ちゃんとした処理系なら括弧もリーダーマクロで変えられるんじゃなかったか
m4みたいに
298:デフォルトの名無しさん
05/02/03 22:13:49
CLにはJAVAのHashMapみたいなものはありますか?
(hashmap obj "KEY" "OBJECT")
みたいな
299:デフォルトの名無しさん
05/02/03 22:35:42
JAVAのHashMapとやらの機能を教えちくり。
300:デフォルトの名無しさん
05/02/03 23:09:12
HashMap hobj = new HashMap();
String key "KEY";
String object = "OBJECT";
hobj.put(key,object);
System.out.println( hobj.get(key) );//"OBJECT"が表示される
こんなんです
301:デフォルトの名無しさん
05/02/04 00:14:26
ハッシュテーブルあるよ。
データ構造でなくJavaのHashMapが質問に出てくるところがなんだかなー。
302:デフォルトの名無しさん
05/02/04 00:46:59
一旦定義したメソッドに引数を追加して定義しなおそうと思ったら
Attempt to add the method
#<STANDARD-METHOD ほげほげ> to the generic function
#<STANDARD-GENERIC-FUNCTION ほげほげ>, but the method has
"more" optional arguments than the generic function.
と怒られてしまいます。開発中にいちいち処理系を起動しなおすのはかったるいので
なんとかならないかと思うんですが、どうすりゃいいんでしょ。
303:デフォルトの名無しさん
05/02/04 08:30:38
>>302 ANSI CLのdefgenericの説明では、defgenericの:methodオプションで定義した
メソッドと、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とか。
304:デフォルトの名無しさん
05/02/04 14:09:51
ふむふむ。
今度はfind-method/remove-methodでやってみます。
今まではシンボルごとuninternしちゃってました。
どうもありがとうございました。
305:デフォルトの名無しさん
05/02/04 16:10:05
継続って何ですか?
306:デフォルトの名無しさん
05/02/04 16:11:50
>>305
テンプレ嫁
スレリンク(tech板)
307:デフォルトの名無しさん
05/02/05 22:42:02
lispで簡単(テキストファイルの送受信程度)なネットワークプログラム作りたいのですが、
その辺の情報の載ったサイトとか本ありませんか?
308:デフォルトの名無しさん
05/02/05 22:56:09
perlでも使えよ
309:デフォルトの名無しさん
05/02/05 23:06:09
まずは処理系のマニュアルを眺めてみるのがよろしいのでは。
310:デフォルトの名無しさん
05/02/06 17:36:15
CLISPでMOPがサポートされtらしいのですが、
どうやって使うものなんでしょうか?
311:デフォルトの名無しさん
05/02/06 18:48:22
MOPってMeta Object Protocolのこと?
もしそうなら使い方がわからない時点で貴方には必要のないものだと思うのですが。
AMOPは読破・理解されましたか?
312:デフォルトの名無しさん
05/02/06 21:10:14
>>310 MOPはオブジェクトシステム(CLOS)をカスタマイズするときに使います。
CLOSを実装するのに必要となる、ある程度の動作が規定された一連のジェネリック関数が存在し、
それらのメソッドを独自に定義することにより、カスタマイズを行います。
たとえば、永続化をサポートしたオブジェクトをシステムに組み込むなんて
ときに使うこともあれば、CLOSに標準化される前の古いオブジェクトシステムを
エミュレートしたりするときに使うこともあるでしょう。
MOPの仕様は公開されているので読んでみてはいかが?
URLリンク(www.lisp.org)
313:デフォルトの名無しさん
05/02/07 20:28:56
dylanという言語は素晴らしい。
Lispより素晴らしい。
何よりIDEが素晴らしい。
と、言語マニアな友人が言っていた。
マジかぁ?
314:デフォルトの名無しさん
05/02/07 23:04:49
>>313
>dylanという言語は素晴らしい
dylanって何?
315:デフォルトの名無しさん
05/02/07 23:44:28
まあマカの言う事だし
316:デフォルトの名無しさん
05/02/07 23:58:42
ぬるぽぅ?
317:デフォルトの名無しさん
05/02/08 21:35:26
>>314
dylan
スレリンク(tech板)
318:デフォルトの名無しさん
05/02/13 16:57:45
append という関数について質問なのですが、
(append '(1 2) '(3 4)) => (1 2 3 4)
仕様では前半の '(1 2) は新しいセルを作って内容を
コピーするらしいのですが、なんで前半の最後を後半の
最初に繋げるだけじゃ駄目なんですか?
319:デフォルトの名無しさん
05/02/13 17:37:26
CL-USER> (setf x (list 1 2))
(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>
320:デフォルトの名無しさん
05/02/13 18:26:58
319を見て318はダメな理由が思いつくかしらね、と。
321:デフォルトの名無しさん
05/02/14 08:40:44
>>318
> なんで前半の最後を後半の最初に繋げるだけじゃ駄目なんですか?
それには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より速度、空間的なコストが安くあがる
可能性が高いため。
こんなんでどうでしょう?
322:デフォルトの名無しさん
05/02/14 08:44:13
上の例での動作がプログラマが望むものであるときもnconcを使うよね。
323:デフォルトの名無しさん
05/02/14 11:20:10
>>318
> (append '(1 2) '(3 4)) => (1 2 3 4)
'(1 2), '(3 4)は定数なのでテキストセグメントなど変更できないメモリ領域に
とられる可能性がある。そうするとappendの代わりにnconcを使って前半のリストを
変更すると、bus errorで落ちる。
324:デフォルトの名無しさん
05/02/14 23:28:54
気味が悪いくらい皆親切だな。何かあったのか?
325:デフォルトの名無しさん
05/02/14 23:30:05
>>324
実は童貞だけどチョコレートもらえたんだ。
326:デフォルトの名無しさん
05/02/24 23:09:02
ML使いの香具師いる?
327:デフォルトの名無しさん
05/02/25 00:41:40
MultiLanguage
328:デフォルトの名無しさん
05/02/27 13:28:46
>>326 Ocaml ならちょくちょく使うよ.
329:デフォルトの名無しさん
05/02/27 16:41:12
(setq n '(func foo))
n
(defmacro macro(x)
`(defun ,(car x) (y)
(print y)
)
)
このマクロがエラーになるのですがどうしてでしょうか?
`(defun ,(car n) (y) (print y))
これと同じ事をしているつもりなんですが・・・
330:デフォルトの名無しさん
05/02/27 17:35:58
自己解決しました
お騒がせしました
331:デフォルトの名無しさん
05/03/01 20:56:04
引数がアトム型なら"atom"、そうでなければ"false"と表示するマクロを
作成したいんですが、
(defmacro macro(x)
`(if,(atom ,x)
(print "atom")
(print "false")
)
上のようなマクロで動くんですが、
展開したときに
(macroexpand-1 '(macro 'a)) -> (print "atom")
となるようしするにはどうすればいいんでしょうか??
332:デフォルトの名無しさん
05/03/01 22:23:19
ifを外側に出せばいいのでは。
`(print ,(if (atom x) "atom" "false"))
333:デフォルトの名無しさん
05/03/01 22:32:27
(if (atom x) '(print "atom") '(print "false"))
334:デフォルトの名無しさん
05/03/02 01:15:22
>>332、>>333
ありがとうございます。
マクロは凄い機能ですね、昔C++でどうしてもできなくて挫折した
機能をわずか数行で実現できました。
335:デフォルトの名無しさん
05/03/02 03:02:22
scheme と common lisp ってどのくらい違うのでしょうか?
なにが決定的に異なるかでもいいですが。
schemeを覚えたからといってcommon lisp のプログラムがかけるとか、そういうことは無いのですか?
336:デフォルトの名無しさん
05/03/02 03:30:08
|← これくらい →|
337:デフォルトの名無しさん
05/03/02 04:14:03
>>355
個人的には、最初にぶつかる大きな違いは
define-syntax と defmacro の違いかなあと思います。
call/cc は……scheme で call/cc 使いこなせるくらいになったら、
common lisp の特殊形式諸々で何とかできない……のかなあ。
私は call/cc 使いこなしてるわけじゃないので何とも。
clos も plt やら gauche を使えば、まあ、それなりに、て気もするし。
名前空間辺りは、好みはあっても、基本的にはすぐに慣れるでしょう。
たまにうっかり #' 付けたり付け忘れたりしますけど。あと funcall とか。
まあ、scheme やってればすぐ common lisp で書けるようなるかっていうと、
やっぱり慣れるのに時間は必要でしょうけれど、やってないよりは遥かに楽に入れるとは思います。
338:デフォルトの名無しさん
05/03/02 05:25:45
call/ccなんて使わない奴は全く使わないでしょ
339:デフォルトの名無しさん
05/03/04 17:44:07
lispで正規表現ってできますか?
Clispでうありたいんですけど。。。
340:デフォルトの名無しさん
05/03/04 18:57:18
>>339
はいな。
URLリンク(clisp.cons.org)
341:デフォルトの名無しさん
05/03/04 19:01:02
>340
さんくすです
342:デフォルトの名無しさん
05/03/05 12:43:02
>>337
schemeな人が「Lisp?(プゲラ」みたいなことよく言ってるけど、
こうしてみると、別にそれほどLispが劣ってるようには見えないなあ。
大して違わないじゃん。
343:デフォルトの名無しさん
05/03/05 13:31:47
趣味でいやなことやんなくていいときはScheme
仕事で泥臭いことも泣く泣くやらなきゃいけないときはCommon Lisp
フリーソフト作ってみんなに自慢したいときはEmacs Lisp
344:デフォルトの名無しさん
05/03/05 14:56:15
別に泣く泣くとか泥臭いとか言うほど違わないじゃん。
ちっとも泥臭くない。
345:デフォルトの名無しさん
05/03/05 16:46:25
>>343
仕事で泣く泣くCommonLispなんて選択する奴いるのかね。
346:デフォルトの名無しさん
05/03/05 17:31:16
こんなこと言うと怒られるかも知れんが、
lispとschemeで相違点あるのか?
ほとんど同じようなもんじゃないのか?
347:デフォルトの名無しさん
05/03/05 19:10:12
それ以上はスレ違い
このスレ、なんのために立てたんだ?
348:デフォルトの名無しさん
05/03/05 19:11:19
>schemeな人が「Lisp?(プゲラ」みたいなことよく言ってるけど、
どこで言ってたのか教えてくれよ(プゲラ
349:デフォルトの名無しさん
05/03/05 20:39:24
正直言って Scheme の define-syntax はいまいち馴染めん。
call/cc も catch/throw で代用できるケースしかあまり使わない。
(そうでないケースで使うと極端に効率の悪い処理系もある)
srfi の実装も結構まちまちで、ポータビリティを考えると結構めんどくさい。
ってなわけで、最近は Scheme より Common Lisp を使うことが多いね。
350:デフォルトの名無しさん
05/03/05 23:32:23
Lisp と Scheme を比較って、意味がわからんぞ。
Lisp
+- Common Lisp
+- Scheme
+- Emacs Lisp
+- その他の Lisp 方言
:
351:デフォルトの名無しさん
05/03/05 23:48:15
LOOPマクロが嫌いな奴はみなSchemeに流れたよ
352:デフォルトの名無しさん
05/03/06 00:01:58
>>350
このスレの流れは >>335 から派生しているのだよ。
353:デフォルトの名無しさん
05/03/06 00:40:06
>>351
あぁ、あれか。あれは Common Lisp 派の漏れでも醜いなと思う。
CLtL2 を読んだとき目を疑ったよ。Common Lisp の汚点だ。w
漏れ的にはループは do がデフォかな。loop は無条件繰り返しのときだけ使う。
354:デフォルトの名無しさん
05/03/06 00:44:47
>>349
CommonLispにだってperlやrubyみたいな単一の実装があるわけじゃないんでしょ?
だったらポータビリティの問題はschemeとかわらないんじゃない?
355:デフォルトの名無しさん
05/03/06 00:54:25
んなこたあない
356:デフォルトの名無しさん
05/03/06 00:57:40
>>354
Common Lisp なら言語で定義されている範囲で済むことでも、Scheme の場合は
ちょっとした便利関数でも R5RS では定義されてないから結局 SRFI のお世話に
なってしまう。そのときの処理系間のばらつきが割と大きいように思えるということ。
別に Scheme が嫌いなわけじゃないよ。念のため。
357:デフォルトの名無しさん
05/03/06 01:26:26
Schemeってモジュールやオブジェクト指向といった、現代のプログラミングでは
欠かせない重要なことすら処理系依存じゃん。
そういうのは嫌なとこだよね。
358:デフォルトの名無しさん
05/03/06 06:10:36
SRFIでライブラリの標準化を進めるのはいいが、
定義された関数仕様が気に入らない
マクロ覚えたて厨が考えたみたいなマクロとか、
どこぞの処理系の実装そのまんまとか
ところで、ここはCommonLispスレじゃなかったのか
359:デフォルトの名無しさん
05/03/06 11:49:49
まぁ対比することで Common Lisp の良さが見えてくることもあるからいーじゃない。
360:デフォルトの名無しさん
05/03/06 20:03:24
ところでおまいらどの処理系使ってる?
ちなみに漏れは CLISP だが。
361:デフォルトの名無しさん
05/03/06 20:27:09
ACL trial
362:デフォルトの名無しさん
05/03/06 22:20:39
やっぱりemacsかな
日本語とデバッガと独自関数の便利さから。
しかしcommon lispと結構違うのが痛い。
日本語と環境(デバッガ)とフリーという三つの条件入れるとこれしか選択肢ないんだよな。
Schemeは全滅。
363:デフォルトの名無しさん
05/03/06 22:51:10
>>362
最近の CLISP は GNU libiconv 使ってて国際化は結構充実しているっぽいよ。
URLリンク(clisp.cons.org)
364:デフォルトの名無しさん
05/03/07 05:40:28
clispいい。
eclipseみたいな環境があればもっといい。
エディタは飽きた。
365:デフォルトの名無しさん
05/03/07 09:20:21
CommonLispではまともなのはCLISPしか選択肢ないよな。
環境が多少悪いかもしれないけどこれしかないんだから
我慢するしかない。
366:デフォルトの名無しさん
05/03/08 06:21:06
そうか、CLISPはIDEがないのか。
JAVAでさくっと作ってみるかな。。。
367:デフォルトの名無しさん
05/03/08 12:36:51
こんなのどーだ。使ったことないけど。
URLリンク(ciapek.uci.agh.edu.pl)
368:デフォルトの名無しさん
05/03/08 20:00:20
>>367
使ってみたけど、なんか意味あるのかこれ?
デバッガと言ってもインタプリタがそのまま出てきただけだったぞ。
369:デフォルトの名無しさん
05/03/08 20:10:19
SLIME じゃダメですかね
370:デフォルトの名無しさん
05/03/08 20:31:32
Lispがそんなに生産性高いならIDEくらいさっさと作れるはずだな。
371:デフォルトの名無しさん
05/03/08 20:41:17
slimeってclispで動いたっけ??
372:デフォルトの名無しさん
05/03/08 20:53:58
>370
ACLはACLで出来ている
373:デフォルトの名無しさん
05/03/08 21:16:10
>>371
% 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
374:デフォルトの名無しさん
05/03/08 21:56:04
clisp 使えても iso-8859-1 決めうちじゃなあ。
375:デフォルトの名無しさん
05/03/09 02:21:04
emacs系が統合環境なんじゃないの?
376:デフォルトの名無しさん
05/03/09 16:07:21
>>371
サポートするってかいてあるけど。URLリンク(common-lisp.net)
377:デフォルトの名無しさん
05/03/09 22:41:11
>>367のエディタで改行して自動でインデントが付かないのは
俺だけか・・・?
微妙に使いづらいな。
378:デフォルトの名無しさん
05/03/09 22:46:23
忘れたころにLOOPマクロマンセー、と書いてみる。漏れは結構好きで使いまくりだ。
379:353
05/03/09 22:59:16
>>378
そうか。醜いとか汚点とか書いて悪かった。許してくれ。
380:デフォルトの名無しさん
05/03/09 23:25:15
loopも典型的で簡単な使い方をする分にはいいんじゃないの。
381:378
05/03/09 23:52:10
そうくるとは思わなかったな。何でLOOPなんか使うんだゴルァと叩かれると思ってた。
Common Lisp使ってる時点で異端扱いなので変な目で見られるのは慣れてるのだ(w
でもあのレベルのマクロを皆が好き勝手に作り始めたらポータビリティどころの騒ぎじゃ
なくなるような気はする。
382:デフォルトの名無しさん
05/03/10 06:13:09
emacsのlisp-modeのインデントが
(if predict
□□a
□b)
こうなるんだけど、scheme-modeみたく
(if predict
□□a
□□b)
のように出来ないんディスカー?
383:デフォルトの名無しさん
05/03/10 07:05:10
できる。というかわざわざ前者のようになってるわけだが……。
(put 'if 'lisp-indent-function nil)
384:デフォルトの名無しさん
05/03/10 07:09:41
>>383
ありがとう。
前者のようになっている理由は?
385:デフォルトの名無しさん
05/03/10 08:25:07
>>381
何でLOOPなんか使うんだゴルァ
LOOPみたいな独り善がりマクロがある限り
CommonLispに発展はない
386:353
05/03/10 11:20:48
>>381
マイナな中でさらに細かい流派を作って、いがみあってもしょうがないからね。
なるべく寛容になるようにしている。w
複雑なLOOPマクロを書けと言われたらちょと困るけど、読むくらいならなんとかなるし。
(たぶん、、、)
387:デフォルトの名無しさん
05/03/10 16:19:01
>>384
lisp: (if COND THEN ELSE ...)
scheme: (if COND THEN ELSE)
388:デフォルトの名無しさん
05/03/10 21:50:33
え、それって理由になってるの?
389:デフォルトの名無しさん
05/03/10 23:04:31
おそらく、理由なんだろうな。
elseが複数あるからってことでしょ?
まあ、だからってなんでaだけ下げるんだという疑問はまだ残るが。
390:378
05/03/10 23:13:10
>> 385
前半の前提と後半の帰結の関係がさ〜っぱりわからん。理論立てて説明してみ。
LOOPマクロが繰り返し構造に特化したDSLの様相を呈しているという点で独り善がり
という感想を持つのは理解できなくもないが(しかし委員会で承認され規格化されて
いるという点で独善ではありえない)、その存在とCommonLispの発展とに何の関係が?
391:デフォルトの名無しさん
05/03/10 23:35:25
>>389
>elseが複数あるからってことでしょ?
ええー
述語ひとつに対してTHEN節とELSE節の他に、
ELSE1…ELSEn節があるって論理的におかしくないか?
392:デフォルトの名無しさん
05/03/10 23:48:24
Scheme での (if COND THEN (begin ELSE1 ELSE2 ...)) を伝統的 Lisp では
(if COND THEN ELSE1 ELSE2 ...) と書けるってこと。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5371日前に更新/244 KB
担当:undef