[表示 : 全て 最新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)


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にアマゾンのレビュー
システムみたいなのがあれば玉石混交から適切な玉を選べそうだけど。

605 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 14:51:56.26 ]
>>604
まあ、いつもの人だって文章から滲み出る雰囲気で分かるけど。

その99%っていうのはどこから来た数字なのかな? 何か意味がある?
Amazon S3がバックエンドだそうだから稼働率の保証は99.9%らしいけど、
そんなのは本当にどうでも良い気がするよ。

Quicklispが大がかりなら、PerlやRubyではCPANやRubyGemsを使わないし、
LinuxやWindowsでもパッケージシステムを使わないで過ごしてるの?
自分ですべてのライブラリを開発して保守する方が敷居が低いと本当に思う?
批判のための批判になっていないか? より具体的に何をどうして欲しい?

ちなみに、日本語でのライブラリの紹介とか、Pythonライブラリの実装とか、
CLikiでのお勧めライブラリ紹介とか全部すでに存在自体はあったりする。
無論「初心者には」CLikiを見ろで済ませないよ。知ってれば案内すると思う。
ただ、Lispのここが、って語ってる人、別に初心者じゃないよね。


606 名前:599 mailto:sage [2011/12/17(土) 15:53:00.46 ]
>>600-601
ありがとうございます。
>>600のxmlsとxmlの両方の例を示してくださり勉強になります
(木構造を渡り歩くwalkerがとくに)



607 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 17:16:33.39 ]
>>605
99%の数字はあんまり意味はない。そのくらいの精度・品質ならユーザーとしては困らないし、我慢できる範囲
だろうなあと思っているだけ。
> Quicklispが大がかりなら、PerlやRubyではCPANやRubyGemsを使わないし、
> LinuxやWindowsでもパッケージシステムを使わないで過ごしてるの?
Linuxに軽くでも腰をすえている人ならaptやyumでパッケージシステムを使う人が多いでしょうよ。aptやyumでライブ
ラリを落とせるなら落とすだろうけど、非Perler,非RubyistがCPANやRubyGemsを使うかな。処理系に標準
パッケージシステム(山)があるなら使うって体ができている人(登山家)の考え方じゃないの。
> 自分ですべてのライブラリを開発して保守する方が敷居が低いと本当に思う?
そんなこと言っていないよ。変な曲解はやめてくれ。
ようするに"Pythonの標準ライブラリが便利そうだな。ブログでチラシの裏コードを書いて非Pythonistが
容易に動かせるってうらやましい"って話だな。
> ちなみに、日本語でのライブラリの紹介とか、Pythonライブラリの実装とか、
> CLikiでのお勧めライブラリ紹介とか全部すでに存在自体はあったりする。
一部の人に流通してもしようがないと思うんだけど。
Lispコミュニティ維持・拡大のための仕掛けや仕組み自体が良くないんじゃないのではないのかという疑念が
生まれてきた。一般Lisperが道にゴミを捨てない・落ちているゴミ拾うぐらいのことで自然と規模の維持が
できて、ちょっとした風が吹けば拡大していくような状況ってできると思うし、そのくらいのポテンシャルを
持っている言語でしょ。非Lisperは道にゴミを捨てなければ落ちているゴミを拾うことなんてしなくていいし、
楽しんで使ってくくればいい。

あとリンクのページは駄文じゃないのでざっとでも読んで欲しいね。

608 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 17:20:01.89 ]
Rubyはディストロのパッケージングシステムで入らないライブラリが多いとですよ

609 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 19:22:44.19 ]
>>607
毎度思うんだけど、独自の自分だけに通じる数字持ち出すの止めようよ。

>>601の「低レベルな 」の段落とか、まさに車輪の再発明の推奨なんだけど、これも曲解?
既にある程度評価されている、整備されたライブラリがあって、入門者がそれを知らないなら、
使うように導きこそすれ、同等のものを新規に書きましょう、なんて普通言わないでしょうよ。
最近ようやっと、まともに動くパッケージマネージャ(Quicklisp)も出てきた状況で。

あとね、疑念がどうこう言うなら実際に動いてみなよ。実際に日本語の情報を書いたり、
処理系の機能向上のために寄付したり、イベントに参加したり、布教して盛り上げたり。
どうも、今いる人たちが無関心で努力してないように思いたくて仕方ないみたいだけどさ。
一気にドラスティックに変えたりなんて、そうそうできないんだよ。一歩ずつ進むしかない。
一部の人にのみ知られている状況なんて百も承知で、改善するために動いてる人もいる。
君がそういう活動に本当に協力してくれるなら、どこでも歓迎されると思うよ。
本気でやる気があるならその原動力になって欲しい。これは煽り抜きで。

最後に、Lispに関する文書なんてお決まりなんだから、大抵のLisperは読んでると思うよ。
NorvigとかGarret(Gat)とか。pgのエッセイへの反応とかね。問題があるのは知ってる。
だからって、一気にそれを改善とかできないんだよ。魔法の杖なんてない。


610 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 20:16:05.17 ]
ブログを参考にするのは分かっているときにするべきだと思うなあ。
推奨ライブラリは
www.cliki.net/Current%20recommended%20libraries



611 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 21:07:37.55 ]
cl-ppcreで改行を取り除くにはどうすればいいでしょうか

612 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 21:45:57.32 ]
>>611
(ppcre:regex-replace "\\n" (format nil "~%") "")
;=> "", T
(ppcre:regex-replace "\\n$" (format nil "a~%") "")
;=> "a", T


613 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 22:06:59.31 ]
>>610
こんなページがあるんだね。これが欲しかったのよ。いつもCLikiはある処理のカテゴリの
雑多な紹介ページをみていたわ。サンクス。

あとブログって俺がリンクしたページのこと?
リンクしたのは作者のページだし、CLikiから飛んでそこに行ったんだけど注意するなら
ちゃんとリンクチェックして書き込んで欲しいなあ。ゴミを拾っているつもりなんだろうけど、ゴミを散らか
してなおかつ昼食に食った弁当と飲み物をポイ捨てしているようでは世話ないよ。あとこれだけライブラリ
提供しているんだから超有名人なんじゃないの。自分は今知ったけど。

あとアンカーをちゃんと付けろよ、バカ。アンカーの付け方がわからないなら半年ROMれ。
610が求める2chのCLスレが道にゴミだらけで誰も拾わないスレを望むならそういう振る舞いもかっこいいし、
リソース食いつぶして、玉石混交の2chで玉を弾き、悪貨が良貨を駆逐して焦土化して入門者を路頭に迷わせて
他の言語の扉を叩かせるのもありだろうなあ。

正しくアンカーをつける。反論するときはリンクをチェックする。これだけを教えるためにこのくらい言わない
とわからんのだろ。lispをちょっとかじって頭を働かせればどういう行いが良くて、どういう行いが悪いかなんて
わかるだろ。歳を重ねればもっと鮮明になるしな。
ttp://weitz.de/
CHUNGA - Portable chunked streams for Common Lisp. [1.1.1 / 2010-05-19]
CL-DONGLE - A Lisp interface to SG-Lock dongles. [0.1.2 / 2008-05-01]
CL-INTERPOL - String interpolation for Common Lisp. [0.2.1 / 2008-07-25]
CL-PPCRE - Portable Perl-compatible regular expressions for Common Lisp. [2.0.3 / 2009-10-28]
CL-UNICODE - A portable Unicode library for Common Lisp. [0.1.2 / 2011-08-31]
CL-WHO - Yet another Lisp markup language. [0.11.1 / 2008-03-28]
DRAKMA - A Common Lisp web client. [1.2.4 / 2011-08-31]

614 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 22:08:54.39 ]
「僕は無能です」まで読んだ

615 名前:610 mailto:sage [2011/12/17(土) 22:23:58.96 ]
>>613
ブログについては、ブログは間違いや迂遠な方法を紹介していることも多いという、自分の所感から。

アンカーについては、書き込み以前の流れ全体に対してレスしたつもりで、
具体的にどのレスに対するものかは考えてなかったので。

616 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 22:26:35.96 ]
何の議論してるのか傍目には全くわからんのだが。二人とも、もっと簡潔に書いてくれよ。



617 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 22:37:38.60 ]
俺:「Quicklispマンセー。あと、個人でコツコツ布教頑張ってる人いるんだから、
あんま文句言うのやめね? 自分が上手くできるというならやってみたら」

を、煽りつつ。何かよく分からん理由でQuicklispとか諸々disられたからイラッときて。
前から何かヌーディストビーチとか色々変に絡まれてたフラストレーションも含めて。

はてなのCLの人とかおにぎりの人とか、ILCの関係者とか色々頑張ってんのにさー。


618 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 00:01:47.78 ]
#1:すぐに話の風呂敷を広げる
#2:よく理解しないまま突っ走る
#3:嫌われていると勝手に思い込んでいる
#4:キレて他人に八つ当たりする
#5:やたらと自分の正当性を主張する
#6:何も自分で決めない
#7:何かにつけて理屈をこねる
#8:やたら褒めてほしがる
#9:他人の話を聞かない
#10:何が言いたいのかわからない
japan.zdnet.com/sp/feature/07tenthings/story/0,3800082984,20421237-2,00.htm

619 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 01:04:06.54 ]
>>612
ありがとうございます。\nでうまく処理できないと思いましたが
\\nだったのですね

620 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 01:15:23.70 ]
>>618
初めて2chで勉強になった情報だわ
ありがとう


621 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 01:23:32.98 ]
肩の力を抜けよ

622 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 01:36:45.48 ]
>>615
ブログ参照うんぬんはテンプレ案としてはっきり出せよ。言葉足らずで全然わからんよ。

ネットの先には生身の人間がいるんだよ。ちゃんと3回読んで、自分の伝えたい相手に明確に宛てて、
違う意図として取られないか、言葉足らずじゃないかとかちゃんと判断している?
>>617
団体で動いている人は良いけど。個人でがんばるのは限度があるんじゃないの。もちろん、複数で
まとまって活動するってもの凄く難しいことなんだけど。

"誰々が頑張ってんのにさー。"とチャチャ入れて日本Lispコミュニティ自体について議論させない流れって
意味があることなの?

623 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 02:00:21.22 ]
>>609
98.56%と小数点入っていないんだから何かの引用でないってことぐらいわかるでしょ。あと具体的なソースがある
なら貼るし、品質・安定性・信頼性が高い、割と高いと抽象的に表現しても自分のイメージを具体化することを
怠っているし、相手になんとなくわかるようで実際の所は頭の中に具体化した数字のイメージの違いなんてすごく
開きが出てきそうで伝わらんし、議論も進まないでしょ。自分の認識の違いが間違っているなら訂正されて誰もが
異論を唱えなければ合意の下の仮定の数字になって、それを土台に議論もできるでしょ。

あと具体的な数字持っているならその情報集積群の場所を教えてよ。
> >>601の「低レベルな 」の段落とか、まさに車輪の再発明の推奨なんだけど、これも曲解?
純粋にreplaceの存在を知らなかった。コーヒータイムついでにHyperSpecを目視のみで探したんだけどみつけられ
なかった。emacs lispのinfoは通しでやったけど、CLは処理テーマごとに広く漁って勉強している。
> どうも、今いる人たちが無関心で努力してないように思いたくて仕方ないみたいだけどさ。
そうは言っていないよ。示したPythonとLispの比較のページは2002年だけどそのの頃はrubyの方がメジャーで
Pythonはまだまだって感じだったでしょ。Lispについて関心がなかったのでどういう状況だったのか、よくわから
ない。
ページが翻訳されて、問題意識として共有されて、Lispコミュニティで各人が労力を割いて反映されて活動したわけ
だよ。それで約9年経った現在があるわけで今の仕掛け・仕組みで活動すれば最悪現状維持できて、風が吹けば拡大
していきそうなの? 日本のLispコミュニティ、それより小さい東京のLispコミュニティでもいいから今までの
仕掛け・仕組みを根本から疑って展開していった方が良いんじゃないのかな。一般Lisperは道にゴミを捨てない・
ゴミ拾い・あとそれに毛が生えたことぐらいしかできないよ。その一般Lisperのゴミ拾いリソースを的確な仕掛けに
よって自然と効果的な場所に集めて、効果的なゴミ拾いをさせる。もちろん、コミュニティだから強制力はないし、
誰かが統制的に管理・運用するのも変な話だしね。そうは言ってもLispコミュニティコミットしていて拡大に異を

624 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 02:06:16.23 ]
>>623
>あと具体的なソースがある なら貼るし
つまり裏付けのない主観が出した数字で傾向を語ったのか?

莫迦なの?

625 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 03:45:53.40 ]
>>609 つづき
唱える人はいないと思うし、Lispコミュニティ拡大のためならもう少し踏み込んで色々と議論すれば問題意識が鮮明に
なって共有されて軽い強制力(緊張感)を伴う合意も得られて、もっと効果的な活動ができるんじゃないのかな。地味な
話だけど便利なネット本屋でLisp関連の本は注文せずに自分が住んでいる最寄りの大きい本屋で注文するとか。図書館に
Lisp本を買わせるとか。多言語コミュニティとの比較して、無いモノ探しばっかりしていないか疑い、有るモノ探しを
怠っていないか、疑うべきだと思う。労力・お金も低コストで効果的な方法って探せばいっぱいあると思うよ。ネットが
普及してまだ法的な縛りもきつくない創世記なんだから創世記世代として仕組み・仕掛けを真剣に考えて、真剣にゴミ
拾おうよ。それで仮にLispコミュニティ自体がなくなるなら自分にも説明がつくし、後世の人に説明もつくでしょ。
あと日本においての将来のネットの法規制やプログラミング規制についてもLisp団体はちゃんと議論して声明出すとかね。
言語コミュニティ以前に10年後ぐらいに変なこじつけで重規制されたら暗黒時代に突入しかねないし。

あと一気にドラスティックに変える、変わりたいなんて思っていないよ。これからの9年とその先の9年で18年間で何が
できるかって話だし、何をするかって話でもある。 おわり

626 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 10:53:21.52 ]
>>622
別に日本のLispコミュニティ自体の議論をしたいなら、すれば良いと思う。
例えば、こういう情報へのアクセスが悪いから、こうしませんか、とかなら、
じゃあこういう形で協力するよ、とかなるじゃない。

それを、具体的な対案を出さずに、以前から指摘されている欠点の指摘だけされても、
言うは易しだ、みたいに言いたくもなるよ。それもかなり上から目線だし。
茶々を入れたかったわけじゃなく、頑張ってる人は見てあげてよって言いたいだけ。

あとは、個人で頑張るのは限度があるのはもちろん事実だと思うんだけど、
多くのコミュニティを支えてるのもまた、個人の色々な形での努力なわけで。
団体と個人は車の両輪みたいなものなんだと考えてる。




627 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 10:59:21.90 ]
>>619
良かったら、見てみてー。

tips.lisp-users.org/common-lisp/index.cgi?CL-PPCRE
cl.cddddr.org/index.cgi?CL-PPCRE

上の方は単なる例の羅列で申し訳ないんだけど、種類は色々書いてあるから。
あとは、これが足りないとか知りたいとかあったら教えてください。


628 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 11:14:37.44 ]
>>627
ありがとうございます。既知の注意点だったのですか。
失礼しました。






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

前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