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


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

【入門】Common Lisp その4【質問よろず】



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

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

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

(list
(url pc8.2ch.net/test/read.cgi/tech/1101386936/l50 :part 1)
(url pc11.2ch.net/test/read.so/tech/1140012484/l50 :part 2)
(url pc11.2ch.net/test/read.so/tech/1181479267/l50 :part 3))


209 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 10:31:37 ]
ずいぶん頭固いね。

仕様書って文章で書いた奴しか見たことないのかな。

210 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 10:37:24 ]
と、まるで何かを見てきたふうなことを言ってるけど、別に何も見てきてないんでしょ?w
だから具体的に書けない。

211 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 14:02:39 ]
>>209
とりあえず、199の時点で皆に膝を叩いて納得して欲しかったんじゃない?

212 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 14:34:59 ]
だろうね。

>>199
厳密に書かないといけないのは確かだけど、意味がないわけじゃない。

例えば、今時特殊な状況を除けば普通高級言語でプログラム書くけど、これだって
当然曖昧性のないものでなのでアセンブラと同様に厳密に書かないといけない。

だからと言って意味がないわけじゃないだろ?

ループのためだけにラベル名を考えたり、ローカル変数のサイズ計算してスタック
ポインタから引くためのコード書いたりしなくて良くなるだけでも、ずいぶん楽だ
しコードの品質も上がる。

それと同じで、例えば通信やってる人なんかだと仕様書として状態遷移図とか、ス
テータスマトリックスを渡されたり、自分で書いたりする。

今はこれを見て「人手で」コーディングしてるでしょ?

で、仕様変更があったら再度コードを「人手で」修正してるよね。

この部分を自動化するだけでもかなり楽になると思わない?

213 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 15:36:06 ]
& % #' などの略記一覧はどこかにないでしょうか?
emacsでcommon lisp開発環境作るとしたらslimeだけでいいのでしょうか?

214 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 18:14:29 ]
>>213
> emacsでcommon lisp開発環境作るとしたらslimeだけでいいのでしょうか?
後はマニュアルを引きやすくしとけばいんでね

215 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 18:46:24 ]
>>213
「Common Lispリーダーの標準的なマクロ文字が知りたい」の?だとしたら % って何だろ…
とりあえずHyperSpec見れ
ttp://www.lisp.org/HyperSpec/Body/sec_2-4.html
ttp://www.lisp.org/HyperSpec/FrontMatter/Alphabetical-Non-Alphabetic.html

216 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 19:20:00 ]
>>215
ということは変数名の先頭に%がついてたのは特別な意味はないのですね


217 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 19:30:55 ]
>>216
ないといえばないけど、慣習の一部

www.cliki.net/Naming%20conventions



218 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 20:26:08 ]
CLispがGNU Common Lispかと思っていたけど、
GNU Common LispってGCLだったのね。

違いは何だろうと思って探したら
okwave.jp/qa3686339.html
がありました。

219 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 02:30:50 ]
さいきんLispに興味があります
普段何に使ってますか?

1. シェルスクリプト並にナチュラルに普段使いをしている
2. ある程度以上注意深く作るアプリケーションやモジュール作成の時のみに使用
3. 実用性を考えたら負けなものをニヤニヤしながら作ってて楽しい

220 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 05:58:56 ]
シェルスクリプトとは違う意味でナチュラルに普段使い。
思いついたことをさらっと試すのに使ってる。
Emacs使いでないとわからん感覚かも

221 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 08:38:11 ]
大体何にでも使うけど、シェルスクリプトなんて普段くまねーからわかりません。

222 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:20:20 ]
lispの入門のホームページはよく見つかるのですが、それ以上の話題はどこを探せばいいのでしょうか?
cffiを使ってc++のプログラムをlispから呼びたいのですがサンプルのコードの意味が今一つわかりません
www.swig.org/Doc1.3/Lisp.html#Lisp_nn6
ここあたりがそうみたいなのですが、これが理解できるようになるための
中級向けテキストはどこかにないのでしょうか?

223 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:39:41 ]
>>222
>それ以上の話題
は残念ながら殆ど英語圏にあります。
ffi等は実装依存なので、まず使っている処理系がなにかを書くと適切な返事があるかも。


224 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:42:44 ]
>>222
swigを使うのがわからないのか、ffiの使い方自体がわからないのか、どっちなんだよ?

225 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:59:49 ]
swigは他の言語で使ったことがあるので大体見当がつきますが、
lispのサンプルコードで
cl:letと単純にletと書くのにどう違いがあるのか
などの記法が分からずつまづきます
ffiの使い方がわからないですpython.ctypesと似たようなものなのでしょうか?


226 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 11:08:01 ]
>cl:letと単純にletと書くのにどう違いがあるのか
>などの記法が分からずつまづきます
これはCLのパッケージについて入門用のサイトで勉強すれば分かると思うので、
一歩戻ってパッケージについて学ぶことをおすすめしたいところ。

227 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 11:16:55 ]
>>225
ffiは処理系依存だから、まずおまいさんが使ってる処理系のマニュアル嫁。
処理系にできるだけ依存したくないならcffiとかuffi使え。
でもswig使ったことあるならインタフェース書けるだろうし、
理解しなくても使えると思うんだが。



228 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 13:35:31 ]
>>219
愛があればRubyあたりとそう大差ない普段使いができると思ってもらっておk
PerlはCPANが強力過ぎるしPythonはGUIがあるから常用を比べるのはちょっと酷

ニコニコ動画ダウンローダー(ちょっと色々混じってるが)
ttp://read-eval-print.blogspot.com/2007/08/common-lisp.html

ただ、この利用レベルに至るのには時間がかかるのが難点
「別にLispでなくてもいいじゃんね?」という内からの声を無視できる程度には超越しないとイカン

229 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 13:37:29 ]
maximaを使いたくてpythonからclispに乗り換え挑戦中だ

230 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 13:48:57 ]
maximaをアプリとして使うだけならCL知らんでも
(自分でCL使って関数書きたいとか言わなきゃ)問題なかろ。

231 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 15:00:49 ]
>>228
Lispに愛が芽生えてきますた。
言語への慣れと理解によって大きく違うと思いますが、
Rubyと比べて、生産性は良さはどんなものでしょうか?


232 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 20:27:54 ]
Lispは神が世界を記述するのに使った言葉。
最初に「光あれ!」とかやってたのは全部Lisp。

一方、Rubyはただのスクリプト言語。

233 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 20:32:44 ]
www.aoky.net/articles/randall_munroe/lisp.htm

234 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 10:56:09 ]
Lispはconsセルの操作しかできないと思っていた俺は
CLOSを知った今、猛烈に感動している。
凄いなCommon Lisp♥

235 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 11:01:31 ]
確かめてないが、見えない根っこのほうではconsセルの操作しかしてねーと思うぞ

236 名前:234 mailto:sage [2008/03/25(火) 11:19:24 ]
CLOSどころか、defstructでも感動してしたYO。

>>235
そうですよね。
でも、なんだかとっても凄いぞCommon Lisp。

237 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:26:50 ]
>>235
まあ、足し算とか引き算なんかもできないとスゲー困るわけで...



238 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:41:42 ]
cons だけで数を表現して足し算と引き算とかは実装できるよ。
ラムダ計算の初歩ですよ。遅いけど。

239 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 01:44:37 ]
Rと組み合わせられるなんて

240 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 01:58:43 ]
最近は何見てCLOSを勉強してるんだろ?

241 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 02:20:26 ]
www.geocities.jp/m_hiroi/clisp/clisp01.html

242 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 03:31:13 ]
Rを呼べる
common-lisp.net/project/rcl/index.html


243 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 15:19:34 ]
accountはcustomer-name slotを持つクラスで、

(defun (setf customer-name) (name account)
(setf (slot-value account 'customer-name) name))

と定義すると、

(setf (customer-name my-account) "hoge")

と書けるのはどうしてですか?

defunを使った関数定義で
(defun (setf 〜) ....)
とdefunの直後に括弧が付く場合、何を意味することになるのでしょうか?

初心者丸出しの頓珍漢な質問だと思いますが、お願いします。

244 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 16:54:04 ]
何でって言われてもそれがアクセサの定義の仕方だから。

245 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 17:15:34 ]
もうちょっと具体的に説明すると CLtL2 のインヴァージョンをよく読むとよい。
OnLisp の汎変数の説明のところでもいいけど。

246 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 18:54:02 ]
cmuclをemacs22+slime2.0で使っています。
キャラクタエンコードをutf-8を通す設定にしてslimeコンソールから日本語(に限らずutfで256以上の値を持つ文字)を食わせると
cmucl側からソケットが切断されてしまうのですがこの辺りを解決する情報をお持ちの方はいますでしょうか?



247 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:41:14 ]
>>246
そもそもcmuclってutf-8通せたっけ?



248 名前:243 mailto:sage [2008/03/26(水) 20:49:02 ]
>>244,245
Googleで調べていたのですが、このような機能をなんと呼ぶのかも
分からず、困っていました。
CLtL2 inversionで調べたら、出てきました。
助かりました。どうもありがとうございます。

249 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 00:50:24 ]
>>247
単体で起動すると通りますがslime経由だと通らないのです。

sbclも試したのですが、こちらは主用途のaserveでつかっているhtmlgenの中に日本語テキストがあると出力がそこで打ち切りになってしまいますです。
ex.
aserveへ↓を食わせたときに
(:html (:body "test" :br "test2" :br "多バイトコード" ))
ブラウザでaserveをアクセスしたときに test2<br>までが出力されます(sbclのバグトラックにはレポートあがってました)
この例をcmuclでやるとコンソールから直に打ち込むとOKなのですがslime経由だと"多"が送り込まれた時にsocketがreset by peerになってしまうのです。

lispの学習で自分の手習いを実用コードで行おうというのがおこがましいのかなぁorz


250 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 07:42:04 ]
>>249
windowとunixで
CLISP+emacs+slimeでutf-8でコードを書いていますが、
CLISPだと駄目ですか?

251 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 07:59:35 ]
>>250
うちの .emacs にはこんなことが書いてあるが...

(setq slime-lisp-implementations
'((sbcl ("sbcl") :coding-system euc-jp-unix)
(clisp ("clisp" :coding-system euc-jp-unix))))
(setq slime-net-coding-system 'euc-jp-unix)


252 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 09:30:19 ]
>>246
これ自分も知りたいと思ってた。
自分が確かめた範囲では、下記の通り

*UTF-8で日本語が使えるかどうか*
--そのままでOKなもの
sbcl
clisp
allegro cl
clozure cl

--処理系で日本語は使えるけれど素のSLIMEだと切断されるもの
cmucl
ecl
lispworks
abcl

ちなみに「日本語が使える」ってのは処理系で表示できてる、位の意味で、
厳密には処理系ごとに事情が違ってます。
多分、処理系に応じたswank-〜.lispを修正すれば良いんだと思うけど、
漏れは、挫折して、素でOKなものを使ってます。


253 名前:247 mailto:sage [2008/03/27(木) 11:07:58 ]
>>249
> この例をcmuclでやるとコンソールから直に打ち込むとOKなのですがslime経由だと"多"が送り込まれた時にsocketがreset by peerになってしまうのです。
utf-8 で接続はできて、日本語を送ろうとしたときに接続が切れるの?

254 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 11:40:24 ]
3日でclispを実用的に使えるレベルになろうと思って挫折した
憶えないといけないこと多いね
classの考え方が他の言語と違ったりするし

255 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 11:43:32 ]
>>254
次に3日でマスタしようとして挫折する予定の言語はなんですか?

256 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 11:45:05 ]
swank以前の問題でコンソールではたまたまアスキー越えた部分が
日本語になって出てきているだけじゃないか?
char-code-limitはいくつ?

257 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 11:46:18 ]
Brainf*ck



258 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 12:51:21 ]
>>254
あなたは何をやっても駄目そうですね。

259 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 14:26:57 ]
>>246

cmucl 19e

- Preliminary support for external formats. Currently only
iso8859-1 and utf-8 are supported. Utf-8 support is limited
since CMUCL only has 8-bit characters.


260 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 14:32:59 ]
swank の方でも cmucl への接続時は iso-latin-1-unix 以外の coding だと
接続できないように書かれているから、そもそも utf-8 で接続できているのが
おかしいというか勘違いだろう。

261 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 03:04:37 ]
>>259
ガーン、有難うございました orz

そうか、external-formatだけダメってのもあるのか,Release-noteはちゃんと読まないとだめですねぇ


262 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 19:57:31 ]
(setq y '(1 2 3 4 5 6 7 8 9 10 11))

(defun visitor (x)
(+ (car x) (visitor (cdr x))))

(visitor y)


スタックオーバーフローで死ぬんですけど・・・。
xyzzyにて。

263 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 20:03:43 ]
すまん。自己解決した。

(setq y '(1 2 3 4 5 6 7 8 9 10 11))


(defun visitor (x)
(if (equal x nil) 0
(+ (car x) (visitor (cdr x)))))


(visitor y)

264 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 21:14:41 ]
ねらい通りのものができたので、記念書きこ。

(setq x '(1 2 3 (4 5 6 (7 8 9 ) 10 11 )))


(defun visitor (x)
(if (equal x nil) 0
(if (listp (car x)) (+ (visitor (car x)) (visitor (cdr x)))
(+ (car x) (visitor (cdr x))))))


(visitor x)

265 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 21:21:22 ]
一つの関数書くのに一時間以上かかってる。
鬱だ。情けない。

266 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 21:43:40 ]
ま、最初はそんなもんじゃないかな

なんとなく別解を書いてみた

(defun visitor (x) (if (atom x) x (apply #'+ (mapcar #'visitor x))))

267 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 22:35:30 ]
>>266
まさか同じ処理をするとは思えませんでした。
高階関数を使うとそんなにすっきり書けるんですね。
勉強になりました。ありがとうございました。



268 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 00:08:43 ]
短く書くだけならこれで十分じゃね?↓

(defun visitor (x) (apply #'+ x))

269 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 00:10:09 ]
…ってごめんよく読んでなかった、今のなしで orz

270 名前:177 mailto:sage [2008/03/31(月) 10:19:14 ]
>>266
なるほどな〜。
私もLispを始めたばかりなので、勉強になります。

271 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:37:40 ]
数式処理(maxima)で
[x1,x2,x,3...]という記号(変数?)の列を生成したいのですが
defmacroを使うのが正しいやりかたなのでしょうか?

272 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 02:24:09 ]
d.hatena.ne.jp/niitsuma/20080325/1206964510
rcl(Rとのインターフェイス)が動かなかったので補正してみました.
ひょっとしてバグなのでしょうか?

273 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 16:15:05 ]
swigでc++ をwrapしてclispから呼びたい
swigのcffiオプションはcはできてもc++はできないみたいなので
Allegro Common Lisp用のものを生成して
swig -allegrocl -c++ example.i
ちょっと書き換えればclispやsbclで動くものになるんだろうか


274 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 00:40:55 ]
ACLの個人向けライセンスの安いのだしてくれんものかのぉ。orz


275 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 08:17:07 ]
>>274
学生になったらいいんじゃね?

276 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 08:43:39 ]
こっちはACLのチュートリアルやってみてるところだけど、
ヴァージョンが違うからなのか、そのままのとおりにならないorz
親しんでもらって売ろうという気は無いのかなと思った。


277 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 20:43:29 ]
どのチュートリアルの話ですか?
ANSI CL 規格の範囲内ならともかく、ACL処理系依存の部分なら
全バージョンで完全な互換性を保つ事を要求するのは酷なのでは…。




278 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 00:07:32 ]
www.common-lisp.ru/repos/pyffi/pyffi.lisp
すごい便利そうなんだけどドキュメントはどこ?

279 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 09:07:12 ]
GNU clispつかってデータ処理してるんだけど
少ないデータをかませたらきちんと結果が出てくるんだけど
大量のデータをかませたら
APPLY: too many arguments given to +
[Condition of type SYSTEM::SIMPLE-PROGRAM-ERROR]
と出てくる.
スタックサイズか何かだと思うんだけど...どうやったらうまくapplyしてくれるようになりますかね?

280 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 09:37:40 ]
エラーメッセージに何が問題か書いてあるんだけど、読んでから質問してる?

281 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 11:02:52 ]
(reduce #'+ args)

282 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 11:55:26 ]
>>279
Clispは引数の数に制限があるの?

283 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 20:18:01 ]
>>282
CALL-ARGUMENTS-LIMIT
ttp://www.lispworks.com/documentation/HyperSpec/Body/v_call_a.htm

284 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 20:41:10 ]
>>283
282じゃないけど、こんな変数あるんだ、勉強になったよ
ちなみに手元で調べた結果(全部 mac os x 上)
clisp: 4096
acl: 16384
sbcl: 536870911

285 名前:282 mailto:sage [2008/04/05(土) 21:40:57 ]
>>283
ほー。こんなのがあるのですか。
ありがとうございます。
こういうのはどのように知ったのですか?

286 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 22:42:57 ]
283じゃないけど、漏れは282同様に派手にAPPLY→エラー→調べる→知る、という流れだったね。
ANSI 規格では最低 50 ときまってるので、50 個の引数までなら CALL-ARGUMENTS-LIMIT を意識せずに安心して使える。


287 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 23:42:37 ]
283だけど、漏れは282同様に派手にAPPLY→エラー→281のようにreduceで書く→忘却→
ある日PCL読んで制限について書いてるのたまたま発見、という流れだったね。
ttp://www.gigamonkeys.com/book/functions.html
ANSI 規格では最低 50 ときまってるけど、 CALL-ARGUMENTS-LIMIT のことは忘れて reduce 使うね。



288 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 20:13:57 ]
おれ様用メモ。constant variable とその最小値。

multiple-values-limit >20
call-arguments-limit >50
lambda-parameters-limit >50

下は多分誰も気にしない値。
array-dimension-limit >1024
array-rank-limit >8
char-code-limit >96
array-total-size-limit >1024

289 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 22:05:03 ]
> 下は多分誰も気にしない値。
char-code-limitはUnicodeサポートの目安に使ったりするみたいよlispuser.net/commonlisp/japanese.html
array-total-size-limitも結構使う。おさまらないやつは分割したりしなきゃいけないから。

290 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 22:28:38 ]
>>288
細かいことを言うようだが、正確にはすべて等号を含む、かな。

291 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 22:53:01 ]
>>289
HyperSpecのぶ厚い仕様はダテじゃないのね、、、失礼しました。
>>290
(´・ω・`)

292 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 10:52:12 ]
CL-USER> (+ 1 2)
3
CL-USER> (+ 2 3)
5
CL-USER> (+ 3 4)
7
CL-USER> (+ * ** ***)
15

こんな事ができるのね。

293 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 12:26:03 ]
>>292
それ、便利だよね。
slimeとかじゃ使えんが。

294 名前:292 mailto:sage [2008/04/08(火) 12:47:38 ]
>>293
slime+clispで試しました。


295 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:42:54 ]
>>294
sbcl だとダメだった

296 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:52:51 ]
>>295 うちは大丈夫だが...
; SLIME 2008-03-24
CL-USER> (+ 1 2)
3
CL-USER> (+ 3 4)
7
CL-USER> (+ 5 6)
11
CL-USER> (+ * ** ***)
21
CL-USER> (lisp-implementation-type)
"SBCL"
CL-USER> (lisp-implementation-version)
"1.0.15.41"
CL-USER>


297 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:01:40 ]
つかこれCommon Lisp標準の機能でしょ?



298 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:38:30 ]
この辺ですな。
ttp://www.lispworks.com/documentation/HyperSpec/Body/25_aa.htm
"*" 辺りしか使ったことないけど。

299 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 23:32:33 ]
一番使うのは + 系だけどな


300 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 00:47:29 ]
*も+もいいよね。CLで好きな機能の一つだ。

301 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 12:13:27 ]
xyzzyでは使えないの?

302 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 12:42:04 ]
自分で試せばいいじゃないか。

303 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 16:14:13 ]
>>301
使えないみたいですね。

304 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 16:19:08 ]
xyzzyはCommon Lispじゃないからしょうがない

305 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 23:34:06 ]
>>301 とかは xyzzy に REPL があるという認識なのね。
オレにはその認識はなかったので、かなり新鮮。

欲しければ実装してやればいいんじゃね。

306 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 00:06:12 ]
REPL よりも lisp-interaction-mode 改造の方が使いやすいかも

307 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 06:35:02 ]
*scratch*に入力した文字は消え去ることもないし、他に履歴呼び出しもあるしで
別に苦労して* + /を実装する必然性も感じられないんだけどw



308 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 08:37:14 ]
(let ((* nil) (** nil) (*** nil))
(loop
(setq *** ** ** * * (eval (read)))
(print *)))

*付きREPLってこんな感じ?ほとんど意味無いけどw

309 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 09:39:28 ]
>>308
実際の実装も割とそんな感じですね。






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

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

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