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


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

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



1 名前:デフォルトの名無しさん [2011/07/06(水) 17:15:15.55 ]
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)
(url pc11.2ch.net/test/read.cgi/tech/1201402366/l50 :part 4)
(url pc11.2ch.net/test/read.cgi/tech/1215834213/l50 :part 5)
(url pc12.2ch.net/test/read.cgi/tech/1234884136/l50 :part 6)
(url hibari.2ch.net/test/read.cgi/tech/1270370267/l50 :part 7)


□テンプレート置き場□
ttp://wiki.fdiary.net/lisp/ (id:guest pass:cl)


504 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 16:24:18.32 ]
>>502
先にpackages.lispとhtml.lispを手動でロードするか、ASDF経由でロードしてください。

(asdf:initialize-source-registry
'(:source-registry
(:directory ("practicals-1.0.3/Chapter31")) ; コードのあるディレクトリを指定
:inherit-configuration))

評価してから(asdf:load-system :html)すればASDF経由でロードできます。

505 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 16:35:46.21 ]
>>499
別に全世界でどうこうとか知名度とか、そういうのはまったく関係ないわけよ。
「特定のコミュニティ」の中で十分に共通の認識がある通り名なら、
「中の人同士」でのコミュニケーションに使っても何の問題もないっしょ?

「この道では知る人ぞ知るアイツもこう言ってるぜ、買えよ」って売り文句に、
「俺は知らないんだけど」って言ってる状況なんだけど、不毛だと思わんか?
その広告のターゲットじゃないんだから、無理に分かろうとしなくていいんだよ。

506 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 16:48:28.25 ]
lispbox、emacsの操作だけ覚えれば使える感じだな。
これはかなり良い入門者向き環境かもしれない。

507 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 16:53:40.02 ]
>>505
ヌーディストビーチのWeb上でのコミュニケーションなんだから
腋毛、マン毛等を手入れしたりした方が良いんじゃないの。

部外者はみるなと立看板をわかりやすいところに立てているなら
勝手にすればいいよ。

508 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 17:06:43.44 ]
>>507
裸なのは君の方なんじゃないの?

509 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 17:17:29.64 ]
気に入らなくてどうにかしたいなら直接そのコミュニティに言えよ

510 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 17:25:18.90 ]
語学力不足で読み取れなかったのに、
コミュニティの閉鎖性にして誤魔化すのはみっともないと思います。

511 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 17:25:26.19 ]
言えないからここで自分の馬鹿さをひけらかしてる訳で

512 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 17:54:21.06 ]
>>506
Emacsを好きになれるかがLisp入門にあたっての鬼門だったりするね
自分はvimから入ったから正直きつかった
好きになったのはEmacs Lispを書くようになってからだ



513 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 18:04:13.66 ]
>>488
Common Lispはlexical bindingセマンティクスだからでしょう。
引数にquoteされた式が書かれた場合はlexical bindingではあるんだけど、
引数が一般の式の時には、外のlexical environmentをアクセスしにいくのは、
Common Lispのセマンティクス上まずい。
統一的にlexical environmentはアクセスできないようにしておけば
わかりやすい性質を持ったevalになる。

514 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 18:27:48.47 ]
>>512
pgはvi派だし、vimの方がサラッと書くときには便利じゃないのかな。
環境を整えて書いたことないけど。
emacs自体は強い支援環境とemacs lispを組む楽しさがあるぐらい。
emacsは四輪でいつも信号に捕まって渋滞。vimはバイクですり抜けして
信号に捕まらずに快適。良い景色があって停車してデジカメに収めよう
としても両者の違いは明らか。

515 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 18:33:24.68 ]
環境を整えなくても・・・viはもともとlispモードがついてるし、
screenと組み合わせれば、それとなく使い勝手の良いものになってくれる。

516 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 18:39:07.08 ]
操作がネックになってるvi使いはviper-mode使えば良いのに。

517 名前:512 mailto:sage [2011/12/04(日) 19:01:30.40 ]
言われてみてvimでも平気だったんじゃないかって気がしてきたよ
なんかくやしいわ

518 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 19:09:15.80 ]
Lisp向けのvim scriptたくさんあるよ。気に入ったものがあればどうぞ。

www.vim.org/scripts/での検索結果
www.google.com/cse?cx=partner-pub-3005259998294962%3Abvyni59kjr1&q=Lisp

519 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 19:30:37.86 ]
slimevよさげですね。もっと早く出てたらEmacsに移らなかったかも

520 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 19:57:47.77 ]
slimvは利用してるけど、emacs+slimeのほうが使い勝手はいい感じがした。
うちの.emacsをチューニングしてるからかもしれないが。
vim使っててよくわからんと思ってるのは自動的に括弧を閉じるようにした時に
括弧の外に移動する方法が矢印キー以外のことがよくわからん^^;ところ
vimも適当な書物をかって学んだほうがええんかなぁ。オライリーのvi/vim第7版は原著しか無いけd.

521 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 21:37:08.33 ]
emacs+slimeでcclを使っていますが、
common lispの閉じ括弧から開き括弧に移動するショートカットキーはあるのでしょうか?
逆に、well-formedなs式で、開き括弧から閉じ括弧に飛ぶということはどうでしょうか

522 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 22:09:10.47 ]
>>516
vipper-modeかと思った



523 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 22:25:38.24 ]
>>521
lispuser.net/emacs/lisphacking.html#sec-1.1

524 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 22:30:23.11 ]
>>523
まさに探していた機能が載っていました
ありがとうございます。

525 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 22:50:47.85 ]
>>504
できました!丁寧に解説して下さってすみません

526 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 00:00:32.88 ]
CLOSの:aroundメソッドがよくわかりません
:before と :afterのそれぞれのメソッドは説明を見ても分かるのですが…
どういう意味でaround(周囲)なのでしょうか

527 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 00:15:03.95 ]
中でcall-next-methodを呼び出せる。
call-next-methodで呼び出されるmethodを覆うように実行されるからaround。

528 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 01:45:09.14 ]
そういうことですか
周囲ではなくて覆うというイメージなら分かる気がします

529 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 16:00:52.40 ]
PAIPを読み続けてるけどNorvigのコードって抽象化力が際立ってるね。
惚れ惚れするコードを書くよ。

530 名前:デフォルトの名無しさん [2011/12/07(水) 07:41:56.65 ]
doがどうも理解しずらいのですが
コツなどありますか?

531 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 11:38:02.20 ]
do*がCのforループと一緒。
doはbodyの実行順序が規定されてない。(依存してはいけない)

532 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 12:31:47.74 ]
>>531 紛らわしいかきかたすんな

DO : ループ変数の束縛がパラレルに行われる
DO* : ループ変数の束縛がシーケンシャルに行われる




533 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 13:26:49.32 ]
common lispのおおざっぱな内容はつかんだと思うのですが、
それからどういうものを作ればいいのかピンときません

できれば10~100行のソースの小さなプログラムで、
common lispの使いどころがよくわかるようなものを複数探しているのですが、
そういうものはありますか?

534 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 15:10:13.11 ]
>Webで読めるCommon Lisp情報まとめ
>Common Lispの情報を得られるWebサイトや書籍をまとめました。
matome.hatena.ne.jp/mt/761

paipが無いのが残念だけど、
いい感じにまとまっているね

535 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 15:10:25.11 ]
こういう複数の言語の実装と比較できるものを読んでみるとか。
shootout.alioth.debian.org/u32/benchmark.php?test=revcomp&lang=sbcl

536 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 16:03:05.72 ]
>>534
深町さんも頑張ってまとめたね。おっしゃるように、Norvigのpaipや
Norvig&Pitmanのlisp作法に書いたドキュメントがないのが残念。とく
に作法のは和訳もされてて読まれやすだけにな。
(*) www010.upp.so-net.ne.jp/okshirai/tutorial-on-good-lisp-programming-style-ja.txt

オレイリーの本って幻っぽい。あの作者が早く健康を取り戻すことをお祈りしておくよ。

537 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 16:06:24.88 ]
Pitman=Hyperspecの中の人。

538 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 16:25:10.53 ]
>>533
PAIPは100行程度でこんなことできるのかと驚かされるものはのってるけど
今の貴方の状況で進められるものかどうか判断できない。
Common Lispだけはいろんな人がいろんな個性のコードを書くから、それが
良いかどうかをみるポイントは>>536でも参考にしてほしい。柔軟性を上手に
使って、最適化も上手なものって案外センスが問われるから。
https://github.com/languages/Common%20Lisp にはいっぱいコードが転がっ
てるけど、お目当てのものが有りそうかどうかはわからん。
速いコードを書く人ならEdi Weitzさんを見るといいかも。でも100行程度じゃないな。^^;

539 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 17:24:49.34 ]
>>533
使いどころって高尚な使い方の話?

雑多な処理なら随時実装していけばいいんじゃないの。とりあえず、どう書く.org?は例文として
参考になるんじゃないかな。
ttp://www.amazon.co.jp/dp/4874084141/
実装するネタがないならこの名著から適当につまみ食いして実装すればいい。

lispのいい所は慣用句を覚えれば形にするの(実装)が速いことだと思うから、形にして動かして
必要性があれば不満な部分を1から再実装しても良いし、不満な部分を我慢して違う興味のあるモノを
作っても良いという気楽さがある。

540 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 17:55:33.62 ]
なんか文章捻れちまったなあww

lispのいい所は慣用句を覚えれば形にするの(実装)が速いことだと思う。形にして動かして必要性が
あれば不満な部分を1から再実装しても良いし、不満な部分を我慢して違う興味のあるモノを作って
も良いという気楽さがある。

541 名前:533 mailto:sage [2011/12/07(水) 22:38:43.46 ]
皆さん丁寧に教えて下さりありがとうございます。
>>538のgithubを見た感じでは読み進めるのに難がありそうなので、
paipとどう書く.orgを手がかりに勉強していきます

542 名前:デフォルトの名無しさん [2011/12/08(木) 07:32:22.36 ]
>>532
簡単な用例などありますか?



543 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 19:19:45.33 ]
>>536
>オレイリーの本って幻っぽい。あの作者が早く健康を取り戻すことをお祈りしておくよ。
作者がどうかしたのですか?倒れたとか…

544 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 20:09:49.07 ]
>>543
lisp-book.org/
Nine months into the project my rubbish state of health forced me to abandon being an O'Reilly author and all work on the book ceased.

遠まわしな言い方も含まれてるけど、健康がガタガタでオレイリーの著者に
なるのを捨てさせられて、本を書くことを中止した

と書いてるのね。ひどい健康問題みたいね。

545 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 22:59:01.24 ]
>>544
そういうことですか
残念ですね

546 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 23:11:54.76 ]
< O'Reillyの著者になることは諦めざるを得なくなり、その本に関することは全てやめました。

547 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 23:20:03.51 ]
>>546
Thanks よく考えたら、 健康であきらめざる負えなくなったことが、
お礼リーかなんかにやめされられたと受け取れん書き方になってた^^;

548 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 23:23:24.16 ]
オレイリーって発音も許容されるの?

549 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 23:27:54.90 ]
研究社のリーダーズを調べた

O'・Reil・ly /ouraili/
ouでは英語で母音が連続するから、
オウライリーとオーライリーの中間?って感じか

550 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 23:43:46.15 ]
社名
株式会社オライリー・ジャパン
www.oreilly.co.jp/index.shtml

551 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 00:13:08.63 ]
aeだとおもってたけどaやった?

552 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 00:15:39.80 ]
ja.forvo.com/word/o%27reilly/ しらべた



553 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 00:28:42.72 ]
>>542
>>532じゃないけど、一例。あんま簡単じゃないかも。

(let ((x 0))
(do ((x 1 (1+ x))
(y x x))
((> x 5))
(print y)))
;-> 0
; 1
; 2
; 3
; 4

(let ((x 0))
(do* ((x 1 (1+ x))
(y x x))
((> x 5))
(print y)))
;-> 1
; 2
; 3
; 4
; 5


554 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 05:48:22.25 ]
>>553
doって何者だ?
CL-USER> (let ((x 9))
(do ((x 1 (1+ x))
(y x x))
((> x 5))
(print y)))
9
1
2
3
4 NIL
CL-USER> (let ((x 9))
(do* ((x 1 (1+ x))
(y x x))
((> x 5))
(print y)))
1
2
3
4
5 NIL

555 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 09:53:45.07 ]
lの二列目だけを抽出できないでしょうか?
CL-USER> (let ((l (ql:system-list))) (first l))
#<QL-DIST:SYSTEM 3b-swf / 3b-swf-20110110-git / quicklisp 2011-12-03>


556 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 12:02:18.15 ]
Pythonの対話式シェルで
> (import os)
エラーが出て、5分ぐらい悩んじまった。

557 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 16:10:58.03 ]
xachさんがl1sp.org/ を作ったみたい。便利 slimeのファジー補完と同じ事を使って検索もできる。

558 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 16:47:22.71 ]
オラ入り

559 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 22:35:20.44 ]
カツマーが高校時代にlisperだったというんだけど、

勝間和代さんと語る─キャリア形成にSNSをどう使う?/Tech総研
rikunabi-next.yahoo.co.jp/tech/docs/ct_s03600.jsp?p=002018

日本の高校生が扱うことの出来たlispってどういう種類があるの?
16歳のときに1984年だから高校時代とcommon lispの制定とかぶると思うんだけど、
そのときに一般人(かどうか知らないけど)がlispの環境をどれくらい触れたのか知りたい
common lispはその中でもレアだったのかも

560 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 22:38:40.20 ]
パソコンだとmuLisp86、SLISPとか。
大型やオフコンが大学にあればUtiLisp、SLISPとか。
SLISPはREDUCEが実装されていたからあちこちにポートされていた。

561 名前:デフォルトの名無しさん [2011/12/09(金) 22:45:46.16 ]
>>554
マクロでしょ

562 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 22:46:39.38 ]
あ、そうか
>隣にある大学の校舎にあるコンピュータ室まで行くんですが、当時はまだパソコンじゃなくてマイコン。パンチカードの時代でした。
wikiで確認したら、慶応の高校に通っていたみたいだから、
慶応にあったlispシステムを使っていたのか



563 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 00:17:23.52 ]
KOとlispなら本を出してる人おったよな。お盛んだったんじゃない?

564 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 00:18:52.00 ]
べちとかかつまーとかうっさんくさいひともリスパか。べちは掲示板作ってたんじゃなかったっけ?

565 名前:559 mailto:sage [2011/12/10(土) 00:31:03.78 ]
>>560
ありがとうございます
mulisp86がよく分からないのですが、ciniiから見れる昭和64年の情報処理学会の報告を見ると
ms-dosで動くのかということは分かりました
どういう処理系だったのでしょうか

566 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 00:42:45.46 ]
>>555
二列目ってその例だと3b-swf-20110110-git?
それで良いなら、

(let ((list (ql:system-list)))
(mapcar (lambda (system)
(let ((release (ql-dist:release system)))
(ql-dist:prefix release)))
list))

データ構造を調べたいなら、C-c Iしてインスペクタで調べると良いよ。

567 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 00:50:38.36 ]
>>557
それ前からあるよ。
逆引きCLとか、Common LISP users jpとかで使ってる。
HyperSpecへのリンクとか全部そこ経由。超便利。

> You knew about l1sp.org, right? The redirect site I made a few years
> ago to make it easy to share links to Common Lisp documentation?

公開されたのはコード。

> Well, I just released its source code on github. Enjoy!

568 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 06:23:40.94 ]
>>566
回答、ありがとうございます。
言葉足らずですいません。(ql-dist:name release)で3b-swfの列をゲットできました。
C-c Iで#<QL-DIST:SYSTEM 3b-swf / 3b-swf-20110110-git / quicklisp 2011-12-03>でエラーになるんですが、
どうやって調べるんでしょうか?
CL-USER> (lambda (x) (+ x x))
#<FUNCTION (LAMBDA (X)) {1002B4983B}>
また#<FUNCTION (LAMBDA (X)) {1002B4983B}>も調べられるんでしょうか?

569 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 16:37:11.64 ]
>>578
ほんとだ 訂正ありがと。

570 名前:デフォルトの名無しさん mailto:age [2011/12/10(土) 16:48:22.12 ]
>>578 に期待 age

571 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 18:18:33.01 ]
>>568
名前なら、releaseじゃなくて(ql-dist:name system)でも大丈夫なはず。
ASDFで定義してるシステムの名前が取れると思う。

それと、#< ... >ってのは、REPLがCLOSオブジェクトをwriteで印字したもので、
オブジェクトそのものじゃないから、それ自体はインスペクトできないんよ。
で、(lambda (x) (+ x x))という式が返す値をインスペクトすることはできる。
SLIMEのREPLなら、最初か最後の括弧の上、slime-modeのバッファなら、
その式の直後でC-c Iすれば、

> Inspect value (evaluated): (lambda (x) (+ x x))

って表示される。Enter押すとインスペクタに入ってゴニョゴニョできるよー。
色んな所で試してみると楽しいぜー。

>>578
お前優しいな。

572 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 18:22:05.97 ]
ちょっと訂正。

「CLOSオブジェクトをwriteで」→「オブジェクトをwriteで」



573 名前:デフォルトの名無しさん [2011/12/10(土) 23:15:47.81 ]
いま皆既月食中だお! お空を見てみ

574 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 23:53:43.96 ]
みたお!

575 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 13:42:10.26 ]
paip3章の演習3.6で、
let形式の値が
(LOCAL-A LOCAL-B LOCAL-B GLOBAL-A LOCAL-B)
となるのですが、このうちglobal-aになる理由が分かりません

letの(a ' local-a)の影響を受けてlocal-a になるのかと思ったのですが、そうないのは何故なのでしょうか

576 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 01:52:31.15 ]
>>575
89ページのsymbol-valueの説明を見ること.
(symbol-value 変数)でスペシャル変数の現在の値を取得する。
レキシカル変数じゃないよ

577 名前:デフォルトの名無しさん [2011/12/12(月) 07:50:42.44 ]
ubunto11.04 sbcl slimeでなぜかmapがエラーになるのは
何故でしょうか

578 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 08:54:50.86 ]
>>577
詳しく。コードとエラーメッセージなど。

579 名前:デフォルトの名無しさん [2011/12/12(月) 10:13:20.36 ]
(let ((myA (make-array 3
:initial-contents '(1 2 3))))
(map 'array #'(lambda (myX)
(+ myX 5))
myA))
ARRAY is a bad type specifier for sequences.
[Condition of type SIMPLE-TYPE-ERROR]

Restarts:
0: [RETRY] Retry SLIME REPL evaluation request.
1: [ABORT] Return to sldb level 6.
2: [RETRY] Retry SLIME REPL evaluation request.
3: [ABORT] Return to sldb level 5.
4: [CONTINUE] Continue from break.
5: [ABORT] Return to sldb level 4.
--more--

Backtrace:
0: (SB-KERNEL:%MAP ARRAY #<FUNCTION (LAMBDA #) {AF5978D}> #(1 2 3))

580 名前:デフォルトの名無しさん [2011/12/12(月) 10:16:45.56 ]
>>578

581 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 10:52:16.49 ]
ARRAY is a bad type specifier for sequences.
と書いてあるようだが…

582 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 11:14:34.31 ]
>>579
配列はシーケンスじゃねーです。

www.lispworks.com/documentation/HyperSpec/Body/t_array.htm
www.lispworks.com/documentation/HyperSpec/Body/t_vector.htm

ベクタ(1次元の配列)はシーケンス。

(map 'vector #'identity (make-array 3 :initial-contents '(0 1 2)))
;=> #(0 1 2)




583 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 13:22:01.17 ]
>>582
小学3年生ぐらいでもsbclを使うようになったのか。なんかすごい時代になったなあ。
>>579
ご両親に英和辞書の引き方を習うとLispの勉強がはかどるよ

584 名前:デフォルトの名無しさん [2011/12/13(火) 00:09:59.48 ]
ありがとうございました。

585 名前:デフォルトの名無しさん [2011/12/14(水) 10:38:08.67 ]
common-lisp.net/project/commonqt/

586 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 16:15:21.01 ]
>>585
Qt4.7でもつかえるのかな?


587 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 20:50:42.23 ]
APIが劇的に変わってなければ使えるように見える。
QtもCommonQtも使ったことないけど。

例によって、C++とCFFIを橋渡しするC++コードと、
その上で動作するLispコードの構成って感じ。


588 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:55:52.02 ]
apacheのmod_lispでsbclが使える無料鯖ってどのくらい需要があるのかな?
電気代やセキュリティとかを気にせずWeb開発できるとlisperとしてはうれしいよね。

LTSが長くて管理しやすそうなのはCentOSだけど、ユーザが自宅のPCローカルで同じ
環境を作りやすいのはUbuntuなんだろうなあ。

589 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 22:48:35.57 ]
>>586
前に見た時は、commonqtはQt smokeっていうC言語用のラッパーを通してcffiで
実装されていたと思うので、Qt smokeがQt4.7に対応している必要があると思う


590 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 23:56:19.93 ]
>>588
無料鯖とかは嬉しいと思うけど、最近だとIaaSで好き放題できるから、
あんまり需要ないかも。CCL使えるPaaSとかも出てきたみたいだし。
お金ない学生とかは嬉しいかもしれないけど。

一昔前と比べると、この手のサービスも信じられないくらい安くなったよね。

591 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 01:13:44.82 ]
>>590
その激安IaaSサービスを具体的に教えてくれ。
PaaSもググったけど出てこないんだけど教えて。

592 名前:デフォルトの名無しさん [2011/12/16(金) 01:16:04.75 ]
板違い
toro.2ch.net/hosting/




593 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 01:44:24.18 ]
>>591
IaaSなら

さくらのクラウド
cloud.sakura.ad.jp/

CloudCore
www.cloudcore.jp/

とか。月\1500〜\2500程度。普通に安いよね?

PaaSは、自分が知ったのはこれ経由。

www.fluxflex.com/library/101

プリインストールかと勘違いしてたけど、
処理系のバイナリも含めてアップロードする模様。
動作はするみたいだよ。

594 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 03:12:00.72 ]
>>593
こういうのがあるんだね。

でも、大学生以下だと高いよ。
ビジネス用途じゃないものはリーズナブルコースでワンコイン以上取ってはダメだと思うんだ。

一般大学生の場合(大学生一人暮らしって少なくなったらしいけど)
光回線・プロバイダ代(7,000円)とケータイ代(3,000円)で10,000円。そこに2,000円はきつい。
実家・高校生の場合
光回線・プロバイダ代(7,000円)は親に丸投げできて免除できるだろうけど、ケータイ代(3,000円)は
全額親が払ってくれるか怪しいし、ケータイが必須になってしまった高校生のこづかいっていくらよ。
そこに2,000円はきつい。

ちなみに自分の高校3年生のときのこづかいは3,000円だったよ。両親の年収合わせて1,000万円はあった
一応中流世帯。まだネットもなくポケベルが流行り始めた頃でケータイ所持必須の同調圧力がなかった
頃の話だ。

595 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 07:17:41.31 ]
働けよ。同世代だが普通にコンビニでバイトして、小遣いはゼロだったわ。

596 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 10:49:27.99 ]
そもそも高校生以下にどれほど需要があるのか
あとスキル持ってる学生はお金に困ってないんじゃ

597 名前:デフォルトの名無しさん [2011/12/16(金) 15:03:26.84 ]
既存のxmlをcommon lispで書き換えるつまり処理した結果を上書き保存するというスクリプトを作成したいのですが、
うまくいきません

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
"www.oasis-open.org/docbook/xml/4.0/docbookx.dtd">
<article>
<articleinfo>
<title>test</title><author>my @@@name!</author>
</articleinfo>
<section id="rrr">
<title>test1</title>
<p>hoge@@@foo</p>
<pre>haao@@@u</pre>
</section>
</article>

このxmlのpとpreの@@@をpiyoに書き換えたいのですが
common lisp のxml parser である cxml を使おうとしたら
"URI scheme :HTTP not supported" とエラーメッセージが表示されます

common-lisp.net/project/cxml/quickstart.html#id54163
"Can I skip loading of DTDs entirely?"どおりにやってみたのですが、
それをもとにどうすればリストを取得できるのか書いていないためわかりません

cxmlで(恥ずかしながら)処理できないなら他のライブラリを活用しようと思うのですが
pとpreの要素に限定して@@@を書き換える処理におすすめのものはありますか

598 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 18:36:35.62 ]
quicklisp.lispは使っている?
httpもローカルファイルも両方できたよ。
(let ((uri "www.oasis-open.org/docbook/xml/4.0/docbookx.dtd")
(pathname "dtdexample.dtd"))
(flet ((resolver (pubid sysid)
(declare (ignore pubid))
(when (puri:uri= sysid (puri:parse-uri uri))
(open pathname :element-type '(unsigned-byte 8)))))
(cxml:parse-file "hoge.xml" (cxml-dom:make-dom-builder) :entity-resolver #'resolver)))
parse関連をまったくやったことないがttp://common-lisp.net/project/cxml/quickstart.htmlをもう一回頭からやり直して
それから自分のやりたい処理に取り組んだらどうかな。このページをさらっと読みながらcxmlを触ってみたけどcxmlで十分
なんじゃないのかな。軽くググった感じだけどかなりメジャーなライブラリの部類みたいだし。

目的の処理ができたらcxmlのインプレッションを教えてくれや。
がんばって。

599 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 00:15:05.42 ]
>>598
ありがとうございます 改めてやってみたらただしく動きました。
ですが、make-xmls-builderからリストを生成して操作しようとするとちょっと扱いづらいことがわかりました
こうなります
("article" NIL "
"
("articleinfo" NIL "
"
("title" NIL "test") ("author" NIL "my @@@name!") "
")
"
"
("section" (("id" "rrr")) "
"
("title" NIL "test1") "
"
("p" NIL "hoge@@@foo") "
"
("pre" NIL "haao@@@u") "
")
"
")
ここで一旦s-xmlを使ってみたら使いやすそうな形式のリストを得られました
(:|article| (:|articleinfo| (:|title| "test") (:|author| "my @@@name!"))
(:|section| (:@ (:|id| "rrr")) (:|title| "test1") (:|p| "hoge@@@foo")
(:|pre| "haao@@@u")))
ただこれをどのようにして書き換えるかがよく分からないので
本を読み直してみます

600 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 02:52:55.63 ]
>>597 >>599
common-lisp.net/project/cxml/quickstart.html#id54163
paste.lisp.org/display/126526

普通にDOMれば良いと思う。あるいはSTP。
Closure XML以外だとXMLSが軽いし使いやすくて好みだけど、
検証できなかったり、エラーハンドリングが終わってる欠点がある。


601 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 03:40:37.45 ]
>>599
>>336で出ているcl-ppcreで後は置換するだけじゃないの。
ttp://weitz.de/cl-ppcre/#splitting

軽い疑問なんだけどregexを使わない低レベルな検索・置換等の文字列処理関数群ってないの?
ググるとcl-ppcreばかり出てきちゃうんだよなあ。

あとまた別の話で低レベルな検索・置換等の文字列処理のみ(日本語不可)だったらライブラリ不要で
100行未満で書けないかね。非lisperに極力ライブラリをインストールさせない方が動かす敷居は
低くくなるよね。

602 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 06:10:32.50 ]
どうでもいいな。



603 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 10:27:17.59 ]
>>601
ツリーの一部を書き換える方法が分からないんだと思うけど。

文字列処理は、それが好きならsearchでもreplaceでも好きにやれば良いよ。

(let* ((string "The quick brown fox jumps over the lazy dog")
(from "fox")
(to "tiger")
(pos (search from string)))
(if pos
(let ((before (subseq string 0 pos))
(after (subseq string (+ pos (length from)))))
(concatenate 'string before to after))
nil))

何でHyperSpecとかCLtL2読まないの?

速度が必要でBMHとかQuick Searchを自前で実装、とかならまだしも、
よく分からん敷居のために既存のライブラリをインストールせず、
俺ライブラリを作ろうとか最早ギャグ。Quicklispで一瞬じゃん。


604 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 12:51:40.03 ]
>>603
糞lisperだけどツリーの一部を書き換えるのは難しそうだけど、最悪力技でもできそうな感じかな。
HyperSpecをみてみたけどみつけられなかった。もの凄く真剣に探したわけではないから軽い疑問と
書いた。

adsfよりはQuicklispは使いやすいし信用しているけど、ライブラリがあれば99%以上の精度で落とせて
使えたっけ。
あと一応ベータとしているのもあるけどミラーもないもまだないよね。どうしても非lisperに対してQuicklispを
使わせるのも大掛かりな気がしてならないんだよな。あと何かの処理をさせるツールが欲しいときにLisperの
ブログに引っかかってソースが載っていてもメジャーなライブリについては触れられていないでしょ。ライブ
ラリ揃えるべく素早くQuicklispに辿りつけるかね。
まあ、そういうのはCommonLispに求めずにPythonとかに任せておけばいいんじゃないというのもあるけどさ。
そういうところがCommonLispの普及を阻害しているなあと個人的に思う。


ttp://www.unixuser.org/~euske/doc/python/python-lisp-j.html の表の赤字で書かれているパッケージ
/モジュールは使いづらい(Harder to use)、GUI, Web などのライブラリは標準なしは解決された?
Japanese Translation Changes:公開。(2002/10/13)と書かれているから原文は2000年頃なのかな。
とりあえずGUI, Webなどのライブラリのデファクトスタンダードが決まっているならPythonの標準ライブラリと
呼応する形で改めて示した方がわかりやすいし利用しやすいのかな。"CLikiをみて好きなの選んでね。"は乱暴
過ぎでしょ。

デファクトスタンダードを(一応、合意の下)ちゃんと定義するとは違うけど、CLikiにアマゾンのレビュー
システムみたいなのがあれば玉石混交から適切な玉を選べそうだけど。






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

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

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