[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 23:20 / Filesize : 244 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【入門】CommonLisp【質問よろず】



1 名前:デフォルトの名無しさん mailto:sage [04/11/25 21:48:56]
lispを触ってみたい入門者のQ&A
初心者のQ&A
本スレでは恥ずかしくて聞けない人のQ&A
本スレは高度すぎて割り込めない人のQ&A
linuxでなくてwindowsでやりたいんですが・・・Q&A
lispを使用してC#やJAVAの代替にするための方法(おまけ)

ま、ゆっくりたりましょう。

「いいものの本質は、いかなる時代においても変わらない」byパワーズ

152 名前:デフォルトの名無しさん [04/12/24 00:34:03]
>151
高すぎるから。
GCLとかよさそう。
GUIつきとかないかな

153 名前:デフォルトの名無しさん mailto:sage [04/12/24 00:37:14]
>>152
$599(62,000円)からあるけど。


154 名前:デフォルトの名無しさん mailto:sage [04/12/24 00:52:17]
>>150
日本語が通るのはLispWorksだけ?


155 名前:デフォルトの名無しさん mailto:sage [04/12/24 11:38:55]
>>154
> 日本語が通るのはLispWorksだけ?
たぶんそう。ただ上記にリストアップされていない、JVM上で動作するABCL(Armed Bear Common Lisp)は
日本語通りそうな気もする。だれか試していない?

156 名前:デフォルトの名無しさん mailto:sage [04/12/24 16:57:08]
オマエガタメセ

157 名前:デフォルトの名無しさん mailto:sage [04/12/24 20:10:33]
>>155 (length "いろは") => 6だって。設定次第でどうにかなるのかな?


158 名前:デフォルトの名無しさん mailto:sage [04/12/24 22:12:24]
>>157
ウニコードだからむりぽ。
LispWorks, ACL も3が蛙。


159 名前:デフォルトの名無しさん mailto:sage [04/12/25 01:15:19]
文字列→symbol→bindされた関数→適用
するのにCommonLispでは (funcall (intern "+") 1 2)
schemeだと
((eval (string->symbol "+") (scheme-report-environment 5)) 1 2)
こんなのしか書けなかった。もっとましな書き方があるはずですよね。


160 名前:デフォルトの名無しさん mailto:sage [04/12/25 01:29:56]
intern 相当がschemeにはないからな



161 名前:デフォルトの名無しさん [04/12/25 22:50:04]
色々あったが、一応社内の小規模アプリをACLで書く許可が出た。
これをパイロットPJとして、使い勝手、速度、仕様変更対応コストなど
データを取る予定。

162 名前:デフォルトの名無しさん mailto:sage [04/12/25 23:59:11]
どんなことがあったの?

163 名前:デフォルトの名無しさん mailto:sage [04/12/26 12:05:05]
>>161
小規模1人プロジエクトじゃデータにならんと思われ。


164 名前:デフォルトの名無しさん [04/12/26 18:20:13]
「Lispの表記をUML拡張できないか?詳細なものを」by課長

殺すしかねぇな

165 名前:デフォルトの名無しさん mailto:sage [04/12/26 19:21:11]
COBOLのほうがまだましだな。

166 名前:デフォルトの名無しさん mailto:sage [04/12/26 21:52:19]
>>164
何か問題でも?

167 名前:デフォルトの名無しさん mailto:sage [04/12/26 22:20:50]
>>166
殺人は犯罪ですから。

168 名前:デフォルトの名無しさん mailto:sage [04/12/26 22:58:58]
UMLでlispを書け、というのはわからんでもない。
一応UML2.0の読み書きぐらいなら仕事で使うレベルならば困らない。
が、私はスリーアミーゴスでもメラーでもケントベックでも、ファウラー
でもない。
「lispコードを読み込んで、UMLを作成するtool」なんざ作れん。
んな技術あったらラショナルに転職するわい。
だいたいLisp用にUMLを拡張するだけでも私の手に余るってんだよ。

169 名前:デフォルトの名無しさん mailto:sage [04/12/27 00:48:07]
>>167
社会的に抹殺してやれば団塊世代なんて直ぐに自殺しますよ。意外と軟弱。


170 名前:デフォルトの名無しさん mailto:sage [04/12/27 02:02:28]
物騒な話はヨソでやるよろし。



171 名前:デフォルトの名無しさん mailto:sage [04/12/27 02:18:25]
LISPコードはマクロのせいで、全部展開しないとパースは無理だから
機械的に意味を抽出できても意図とはかけ離れたものになると思う
コンパイラを1つ作るようなもの

172 名前:デフォルトの名無しさん mailto:sage [04/12/27 11:03:26]
macroexpandすればいいだけやん。
どのみちLispのコンパイラなんて簡単に書けるんだから
そう大層に言うほどのことじゃない。


173 名前:デフォルトの名無しさん mailto:sage [04/12/27 14:42:32]
いやだから、macroexpandした後の内容でいいのかって話

174 名前:デフォルトの名無しさん mailto:sage [04/12/27 14:53:07]
? 着目したい構造がマクロで定義されているんだったらそれはmacroexpandせずに
残せばいい話でしょ?
選択的にmacroexpandするようなのはコンパイラなんて気負うまでもなく書けるでしょ。

C/C++のcppマクロなんかとはわけが違うよ?



175 名前:デフォルトの名無しさん [04/12/27 19:55:00]
問題はdefmacroの扱い方以前に、defunでもdefmethodでも
defclassでもdefgenericでもいいのだが、それらをクラス図で扱うと言うの
なら、UMLをLisp用に拡張しなければならないということだ。
言語事態があまりにもC#やJAVAとはかけ離れすぎているから、
メタクラス使って拡張してXMI対応もしなければならない。

これを三人(私+新人二人)で、一月ではキツくねぇだろうかと、
思った次第(このtool自体をLispで書けは流石に無茶だろう)。

176 名前:デフォルトの名無しさん mailto:sage [04/12/27 23:58:31]
>>175
ふと思ったんだが、その課長さんUMLとXMLと勘違いしていないかい?
どっかで「LISPでプログラム書いてXMLに変換するのはナウいですよ」とか言われて...
課長さん、忘れない様にブツブツ言いながら帰ってくる途中に
XML XML XML ... <地下鉄の中><居眠り><ドトールでコヒー> ... UML UML UML
ってなぐあい。あり得ないかもしれんが、そうであることを君のために祈っているよ(笑

177 名前:デフォルトの名無しさん mailto:sage [04/12/28 08:20:49]
>UMLをLisp用に拡張しなければならないということだ

やってみたら?
もし出来たら発表してよ。

178 名前:デフォルトの名無しさん mailto:sage [04/12/28 23:27:44]
仕事で使うものをここで発表なんかするかよ

179 名前:デフォルトの名無しさん [04/12/31 07:25:57]
arcっていつ出るの?

180 名前:デフォルトの名無しさん mailto:sage [04/12/31 08:20:24]
arcはグラハムの脳内言語ですが何か?
奴に処理系作る時間は無いかと



181 名前:デフォルトの名無しさん mailto:sage [04/12/31 09:29:01]
じゃあグレアムは普段何やってんだろ。
働かなくても食っていける資産はあるだろ。
まさかエッセイばかり書いているわけでもあるまい。


182 名前:デフォルトの名無しさん mailto:sage [04/12/31 10:33:04]
グレアムって誰?

183 名前:デフォルトの名無しさん mailto:sage [04/12/31 10:50:40]
Paul Graham
ポール グレアム
ポール グラハム

どっちが正しい?


184 名前:デフォルトの名無しさん mailto:sage [04/12/31 10:51:18]
つか、香具師はフランス人?


185 名前:デフォルトの名無しさん mailto:sage [04/12/31 11:15:02]
アメリカのLisperと話す時は「グレアム」で通じるけど。
「グラハム」って呼んでる人は会ったことない。


186 名前:デフォルトの名無しさん mailto:sage [04/12/31 12:04:25]
グリィォムだな。

187 名前:デフォルトの名無しさん mailto:sage [04/12/31 12:14:09]
    ∧_∧
    (゚∀゚  )ー┐ グレアムグレアム!
    しヽ   し′
    彡 >  彡) 
      /  / /
     (_(__)
    ∧_∧ 
 ┌ー(  ゚∀゚)グレアムグレアム!
  丶J   /J
   ( ミ   < ミ
   丶 丶 丶
   (__)_)

188 名前:デフォルトの名無しさん mailto:sage [04/12/31 13:08:55]
食べすぎの日記にも出てきませんね.
資産があって暇なら数値計算にも手を出して,文書を書いて欲しいです.

189 名前:デフォルトの名無しさん mailto:sage [05/01/01 03:48:01]
奴はLISP処理系を1から作るなんてことはしない
CommonLispのラッパーみたいなので済まそうと考えてるヘタレ
どう見てもarcは破綻してるだろ

190 名前:デフォルトの名無しさん [05/01/01 04:52:28]
arcってよく知らんのだが、CLと何が違うの?
ラップでもなんでもいいんだが、ただの方言でしかないのか?



191 名前:デフォルトの名無しさん mailto:sage [05/01/01 05:19:25]
>>190
www.paulgraham.com/arcll1.html
www.paulgraham.com/ilc03.html

この辺を読んでイメージをつかんでくれ、と言いたいところだけれど、
原理的なところと実用的なところの話がごっちゃに出てきてて、
いまいちはっきりしないのは確かだな。

一応、かつて上記のを読んで印象に残ってるのは、
名前空間はひとつ、てのとマクロをオプションで実行時展開できるようにする、
て話かなあ、CL と違うってことだと。
まあ、基本的には Lisp は Lisp なんで糖衣構文で何とかならない?
的なネタもある、というか多いけれど。
あとはインデントに構文的な意味を与える、とかもあったかな。


192 名前:デフォルトの名無しさん [05/01/01 23:09:28]
おめーらがやってる批評もどきのRubyに対する足引っ張りはな、
十把一絡げの愚図Java,C++,Perlみたいなカス言語フリーク野郎が
Ruby作者matzのような結果を出した人間と自分との格差を認められず
おこがましくも精神的に一矢報いようとするために
仰々しく「批評」とか名付けた浅ましい自己主張で攻撃して
自尊心を慰めてるにすぎない。

実際問題として、お前みたいな奴が考えてるほど
批評された側の役に立ってるわけがないだろ?ボケが。
その口から出るクソが誰かに感謝でもされたか?ああ?
自意識過剰甚だしいんだよ、この自己愛のボケ奴隷が。
数倍マシ?寝言は寝て言えよこの恥知らず野郎。
ネットで万能感むき出しにしてオナってんじゃねーよ。

批判する野党が重要だぁ?プ
公明党にでも投票してろ白痴野郎。


193 名前:デフォルトの名無しさん mailto:sage [05/01/03 01:01:18]
>>192
A: 誤爆
B: 編集忘れ
C: スクリプト
D: 釣り
正解はどれ?

194 名前:デフォルトの名無しさん mailto:sage [05/01/03 01:30:56]
どっかで見た
E: コピペ

195 名前:デフォルトの名無しさん mailto:sage [05/01/03 13:05:40]
LispでSOA出来ますか?
ようはLispでSOAPが出来ますか、と言うことですが。

196 名前:デフォルトの名無しさん mailto:sage [05/01/03 13:39:15]
LISPは完成された言語である。
故にSOAP対応なんてする必要がない。
去れ、邪教徒よ。

197 名前:デフォルトの名無しさん mailto:sage [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 mailto:sage [05/01/03 23:32:44]
スマン.matlisp というのが cliki にありました.

どちらかというと,Windows でも良い処理系がある scheme の方が
ポータビリティ (?) がいいのかな?

199 名前:デフォルトの名無しさん mailto:sage [05/01/04 00:30:52]
金に糸目をつけなければCommon Lispにもあるんでない?

200 名前:デフォルトの名無しさん mailto:sage [05/01/04 08:18:14]
>>196
完成って・・・
SOA対応でlispからSOAの手軽な実装方法とか出せたら、
今のC#とかJAVAに取って代われるかもしれないぞ?



201 名前:デフォルトの名無しさん mailto:sage [05/01/04 23:09:04]
>今のC#とかJAVAに取って代われるかもしれないぞ?
なんか今年の初夢みたいな話だな(笑

202 名前:デフォルトの名無しさん [05/01/06 06:53:58]
決心した。
ACL7.0を買う!!

203 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [05/01/08 20:34:26]
できません(バイトコードのフォーマットが違います)
できません(exeにすれば実行はできるかもしれません)
できません


206 名前:デフォルトの名無しさん mailto:sage [05/01/09 01:36:21]
ACL

207 名前:デフォルトの名無しさん mailto:sage [05/01/09 02:06:49]
>>204
Java と連携したいなら ABCL とか。
armedbear-j.sourceforge.net/
www.cliki.net/Armed%20Bear%20Lisp

JFLI が LispWorks 以外で動くのを気長に待つとか。
jfli.sourceforge.net/

;; どっちも使ったこと無いけど。

208 名前:デフォルトの名無しさん [05/01/09 10:10:14]
>>207
サンクス〜〜

つかjfliは凄くないかい?
ぱっと見はJYTHONを超えてるよ。
ま、見た目なんだが。

209 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [05/01/09 11:35:09]
Java との連携なら、Bill Clementson の Blog にまとまってるよ。

lwn.net/Articles/104991/
home.comcast.net/~bc19191/blog/index.html

Rich Hickey って素敵な名前だな。あやかりたい・・・。

212 名前:デフォルトの名無しさん [05/01/09 14:07:07]
Lispマシンについて興味あります。
ちょっとづつ調べているんですが、質問させてください。

1.Lispマシンは現在販売されているのでしょうか?

2.LispマシンはOSもLisp実装なのでしょうか?

3.趣味で作ってみたい(FPGL+VHDL)と思ってますが、
  同様に挑戦された方の記録をご存知でしたら教えて
  ください。




213 名前:デフォルトの名無しさん mailto:sage [05/01/09 14:25:05]
>>212
似た事をしている人なら居るよ。
common-lisp.net/project/movitz/

本物の Lisp マシンは GC を H/W でやってたらしいね。

214 名前:デフォルトの名無しさん mailto:sage [05/01/09 16:36:56]
pocket.free.fr/html/casio/ai-1000_e.html

これもある意味 LispM かな。ちょっと欲しいかも。

215 名前:デフォルトの名無しさん [05/01/09 17:54:01]
>>213,214
さっそくのレスありがとう。

>>213
GCもハードですか・・・
さすがLispマシンですね。

教えていただいたページを読んでみます。
英語・・・なので、読むの時間がかかりそうですが・・・(^ ^;

>>214
HPを見たのですが、Lispという記述がみつからなかった
のですが、ソフトはLispで実装されているのですか?


216 名前:デフォルトの名無しさん mailto:sage [05/01/09 18:25:59]
>>215
AI-1000 についてはここら辺を見て下さい。
ttp://www2b.biglobe.ne.jp/~houmei/restore/ai1000/
ttp://www6.plala.or.jp/uekiya/pockecom/pj.html
jp.franz.com/jlug/ja/resources/implementations.html

以前 Lisp スレで話題に上がっていた LispM エミュレータ。
www2.parc.com/istl/groups/nltt/medley/
www.heeltoe.com/retro/cadr/
(medley は Solaris で動きました。
URL はここ経由です。 lambda.s55.xrea.com/)

217 名前:デフォルトの名無しさん [05/01/10 11:22:37]
>>216
わざわざありがとうございます。

2年位かけて自分だけのLispマシンを作るつもりです。
最終的にはハードも自作できたらいいなと思っています。

なにぶん初心者なので、まずは教えていただいたMovitzを
いじって簡単なOSをつくるところから始めたいと思います。

では、なにか成果がありましたらご報告します。


218 名前:デフォルトの名無しさん mailto:sage [05/01/10 19:26:21]
>>217
なんか、往年のX68000ユーザみたいなこと言うね。その姿勢は好きなんで頑張ってね。

219 名前:デフォルトの名無しさん mailto:sage [05/01/11 23:17:57]
MorphyOneの二の前になりそうな悪寒

220 名前:デフォルトの名無しさん mailto:sage [05/01/12 00:39:53]
失敗しても誰にも迷惑かからないんだからいいんじゃないの?



221 名前:デフォルトの名無しさん mailto:sage [05/01/12 00:45:56]
>>219
懐かしい…


222 名前:デフォルトの名無しさん mailto:sage [05/01/13 12:29:28]
>>187 ちゃんと括弧閉じろよ

223 名前:デフォルトの名無しさん mailto:sage [05/01/13 18:31:13]
>>219
>MorphyOneの二の前になりそうな悪寒

二の前は一?


224 名前:デフォルトの名無しさん [05/01/15 19:36:40]
lispでservletみたいなことってできないの?

225 名前:デフォルトの名無しさん mailto:sage [05/01/20 06:38:16 ]
>>224
余裕でできる。 aserve でググれ。

226 名前:デフォルトの名無しさん [05/01/20 21:16:56 ]
aserver落としてきた
でもコンパイルできない
faslが作れん
何故だ?

227 名前:デフォルトの名無しさん mailto:sage [05/01/21 01:33:31 ]
ぼうや(rya

228 名前:デフォルトの名無しさん mailto:sage [05/01/21 07:01:25 ]
>>226
aclはデモ版か?
(sys:update-allegro)とかちゃんとやっとけや(゚Д゚)ゴルァ!

229 名前:デフォルトの名無しさん mailto:sage [05/01/21 22:42:08 ]
updateしてんだけどなぁ。。。
何故かコンパイル中に強制終了する
やり方間違っていんのかなぁ?

230 名前:デフォルトの名無しさん mailto:sage [05/01/22 00:39:16 ]
226はaserverって書いてるけどAllegroServe(aserve)のことか?
「落としてきた」って書くからにはACL突っ込むと勝手にインストールされる奴じゃ
なくてPortable AllegroAserveをコンパイルしようとしてるってこと?
いずれにしても、処理系のバージョンとかプラットフォームとかどんな症状なのかとか
もちっと詳しく書けや。エスパー募集中ならそれも書いとけ。



231 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [05/01/22 08:46:33 ]
>>232
> 型書いたらちゃんと最適化してくれる?
言語仕様上は要求されていないが、最適化してくれる処理系は存在する。

> 関数の入り口に型書いたらちゃんとその型以外はブロックしてくれる?
当て推量だが、あなたが意図しているようなのは通常の関数にはないかも。

ジェネリック関数は、引数の型による自動エラー報知機能を持っていると
考えてもいいかな。

普通にコーディングしていれば、型宣言をしなくても、予想外の型に対して
変なことをしようとすれば実行時にエラーとなり、コード上でそれを捕捉可能。
型宣言をしておくと、賢いコンパイラは、型やぶりな関数呼び出しだと推論
できたときは警告やエラーを発するものもある。たとえば(car 1)などね。



236 名前:デフォルトの名無しさん mailto:sage [05/01/22 08:51:19 ]
>>233 関数の戻り型ってどう書くの?
www.lispworks.com/documentation/HyperSpec/Body/d_ftype.htm
(declare (ftype (function (number) float) sine))


237 名前:デフォルトの名無しさん mailto:sage [05/01/22 08:55:23 ]
>> 234
> JAVAみたいにpackageってあるの?
Javaと同等なものかは分からないけど、パッケージはある。

> ありそうなんだけど、書き方がわからない
> 自分で定義した関数や変数を自前のpackageに入れるってできますか?
できる。英語が読めるんなら、最近はネットで入門書がごろごろしていると思うよ。


238 名前:デフォルトの名無しさん mailto:sage [05/01/22 09:03:51 ]
>>234
たとえば、「Practical Common Lisp」の
21. Programming in the Large: Packages and Symbols
www.gigamonkeys.com/book/programming-in-the-large-packages-and-symbols.html
とかね。俺は読んで無いんで内容の保証はできんけど。

239 名前:デフォルトの名無しさん mailto:sage [05/01/22 10:28:26 ]
>>234
Lispのインタラクティブな環境でパッケージを移動して作業してみると、
パッケージってのが単なる名前空間って事が感覚として良くわかる。

240 名前:デフォルトの名無しさん mailto:sage [05/01/22 17:37:47 ]
>>231
acl 起動して
(require :aserve)
して、
c:\Program Files\acl62-trial\examples\aserve\examples.cl
をロードして、
(net.aserve:start :port 7777)
して、
localhost:7777/
を開く。



241 名前:デフォルトの名無しさん mailto:sage [05/01/22 18:44:27 ]
$599のACL7ってどの程度のものなんでしょうか?

個人でちょっと勉強がてらに使うことを考えているのですが?

めちゃくちゃ制限があるのでしょうか?


242 名前:デフォルトの名無しさん mailto:sage [05/01/22 19:25:39 ]
このスレの住人は、LISPでどんな「問題」を解いているんですか?
つーか、みんな院生?

243 名前:デフォルトの名無しさん mailto:sage [05/01/22 19:26:46 ]
Lispでお洗濯物問題とお夕飯問題を解決しました!

244 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [05/01/23 09:23:55 ]
246の続き。
CL-USER> (shadowing-import 'my-package:func) => T
CL-USER> (func) => 144


248 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [05/01/24 03:32:45 ]
>>248
ありがとうございます。出来ました。
これってC++とかのnamespaceと似たようなものと考えていいんでしょうか?
C++だと自作のutilityとかを

namespace my_util{.....}

とかしてるんですが、LISPでは作法的にどうなんでしょうか?

250 名前:デフォルトの名無しさん mailto:sage [05/01/24 04:12:25 ]
なんか初心者用に問題でも出してやればいいんじゃない?
一日一問でさ



251 名前:デフォルトの名無しさん [05/01/24 06:42:26 ]
lispのVMって無いの?
apatchでlispとか使えないのかな

(個人的にはACLとか大規模なもんじゃなくてclispやxyzzyとapatchが
連携できればいいのになぁ、と思っている)

252 名前:デフォルトの名無しさん mailto:sage [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と書けます。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<244KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef