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)
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 ありがとうございます。既知の注意点だったのですか。 失礼しました。
629 名前:デフォルトの名無しさん [2011/12/18(日) 20:05:39.81 ] cl-ppcreの質問です 非ASCII CODE文字間の空白を _ に変えようとして正規表現を (?=[^\x00-\x7f]) (?=[^\x00-\x7f]) に、置換文字列を _ としたら"a b c"には予想通りヒットしなかったのに"a あ"ではヒットしてしまいました "a あ"のように空白を挟んでいる文字の一方がASCII文字ならヒットさせたくないのですが 修正する箇所をご教示ください
630 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 20:26:19.91 ] >>629 "(?<=[^\x00-\x7f]) (?=[^\x00-\x7f])" でどうだ。
631 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 20:52:45.89 ] >>630 (ppcre:parse-string "(?<=[^\x00-\x7f]) (?=[^\x00-\x7f])") ;=> (:SEQUENCE ; (:POSITIVE-LOOKBEHIND (:INVERTED-CHAR-CLASS #\x #\0 (:RANGE #\0 #\x) #\7 #\f)) ; #\ ; (:POSITIVE-LOOKAHEAD (:INVERTED-CHAR-CLASS #\x #\0 (:RANGE #\0 #\x) #\7 #\f))) になっちゃうんで、エスケープ必要。 (ppcre:regex-replace-all "(?<=[^\\x00-\\x7f]) (?=[^\\x00-\\x7f])" "a b あ い" "_") ;=> "a b あ_い", T
632 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 22:32:47.97 ] どうもです。ばっちり動きました。
633 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 23:12:34.49 ] >>626 > それを、具体的な対案を出さずに、以前から指摘されている欠点の指摘だけされても、 > 言うは易しだ、みたいに言いたくもなるよ。それもかなり上から目線だし。 言うは易しって簡単に使っているけどなあ。日本Lispコミュニティで既に共有済みの指摘 されている欠点をまとめてくれよ。 人間に敬意を払うのは当たり前として議論において神経症的に上から目線うんぬんを 持ち出すことに意味があるの? 議論させてないために文句言っているようにしか聞こえない。 9年後の今についてどう捉えているの? 方向性・方策は失敗だったのか、成功だったのか、 それらへんをはっきりさせて、もう一回議論しても有意義だし、勝手連で適当にやれば いいよという結論でリソースを食いつぶしていくのもありだと思うし。 > 多くのコミュニティを支えてるのもまた、個人の色々な形での努力なわけで。 > 団体と個人は車の両輪みたいなものなんだと考えてる。 もちろんそうだと思うし、協調し合って拡大に向かえるのかは怪しい。でも、議論して 問題意識を共有して、もの凄く良い方策はみつらないかもしれないけど、その議論の後に いいアイデアが思い浮かぶ場合もあるし、問題意識を共有したおかげで個人の行動が ちょっと変わったりするし、誰かと組んでおもしろいことしようと声かけやすくなったり、 次の議論に自然と移れるわけだし、議論したことによるマイナス要素ってないと思うん だけどね。 自分は地方出身者で東京に出てきたけど、東京にいればある程度イベントがあるから 居心地良いけど、地方だとオフ会なんてしにくいし顔をつき合わせた情報の共有化って できないよね。オンラインでやりとりするのがメインだけど、オフラインのやりとりも 軽くカバーしないとLispから離れていくんじゃないのかなと漠然と思っている。 あと学校のパソコン部の担任の教師が軽いLisperとしてその地域にコミュニティがない んであればLispを推すのは難しいよね。無難な言語になりそうだよね。
634 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 00:38:52.80 ] Learn to code | Codecademy www.codecademy.com/#!/exercises/0 このサイトのcommon lisp版が出来れば 普及にスピードが出ると思う common lispの開発環境を整えるだけで息切れする人もいるだろうから
635 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 07:05:48.15 ] >>634 Lispboxがあるよ。(Linux/Windows/Mac対応)
636 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 15:39:51.25 ] lispboxなんてものがあるのか 知らなかったわ
637 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 16:35:32.74 ] >>636 windowsなら、lispboxそのまま落して使うってのの他に、gnupackにslimeを導入するってのもいいよ。 「gnupack slime」で検索すると出るよ。 gnupack gnupack.sourceforge.jp/docs/latest/UsersGuide.html gnupack + NTEmacs23 で SBCL/SLIME aikotobaha.blogspot.com/2010/08/gnupack-ntemacs23-sbclslime.html ubuntulinuxなら、slime導入で勝手に構築されるけど、ubuntu11.10は要注意。 そのままだとslimeが起動できない。 ホームディレクトリに.sbclrcというファイル作って(require 'asdf)と書き込むと起動できるようになる。 d.hatena.ne.jp/ddk50/20111028 を見付けるまで、悩んだ。
638 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 21:42:42.37 ] >>637 つか, Linux のパッケージシステムってディストリに関わらず ドキュメント類が別扱いのやつ多すぎ ドキュメント類まで有無を言わさずつっこむ bsd 系のパッケージシステムの方がありがたい
639 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 21:50:38.85 ] >>638 パッケージをつくるときに、 バイナリパッケージはアーキテクチャごとに、 バイナリ以外はどのアーキテクチャでも使えるようにしてるから。 HDDの容量の関係もあるのかな。 一応依存関係があれば一緒にインストールもしてくれるはず。
640 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 21:57:54.45 ] >>639 依存関係が切れてるやつ多すぎ あるいは、 *-devとかに依存してたりして --without-dev とかのスイッチつけなきゃフルインストール ってな、ノリの方がありがたい
641 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 22:01:07.76 ] 他所でやれ、アホが。
642 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 00:11:10.60 ] apt-getとaptitudeの違いを語るスレと聞いて
643 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 14:00:11.39 ] emacs23+clisp+slimeの環境でcommon lispやってるんだけど 入力するとこの>より前がBreak 1 SWANK-LOADER[2]>ってなってるんだが これだと何かまずいのかな? みんなCL-USER>ってなってるみたいなんだが
644 名前:デフォルトの名無しさん [2011/12/20(火) 15:25:34.48 ] lispboxのwindows版を落としたはいいものの インストール方法がわかりません;
645 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 16:41:50.55 ] >>644 公式ページを辞書片手に訳せ
646 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 16:42:53.92 ] >>643 多分、起動時に何らかのエラーが出てると思われるので、 *inferior-lisp*バッファで出力を確認することを勧める。 >>644 ファイルを展開したら出てくるlispbox-0.7を適当な場所に放りこんで、 その中のlispbox.batを実行でハッピー。
647 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 17:34:44.51 ] >>646 ありがとうございます!
648 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 01:19:08.23 ] CCLとsbclで自身のファイル(test.lisp)のファイル名を取得するには どうすればよいでしょうか?
649 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 01:59:41.07 ] >>648 compile-file前提なら (defvar *file* #.*compile-file-pathname*) でいける気がするけど、REPLとは相性が悪いと思うので、お勧めしない。 具体的にはどういうことがしたいの?
650 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 02:31:49.09 ] >>649 自分のファイル名に.exeをつけたパスで 実行ファイルを作成しようとしました test.lisp->test.lisp.exe hoge.lisp->hoge.lisp.exe こういう風にです
651 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 12:04:40.92 ] >>650 save-applicationとかsave-lisp-and-dieは実行すると処理系が終了するけど、 その辺りの考慮は大丈夫? その辺はばっちり考慮していて、インタラクティブに評価するときに注意するなら、 ある種のkludgeとして>>649 を使えば良いと思う。自分は他の方法は思い付かない。 そのアプリケーションの詳しい機能が分からないので何とも言えないけど、 あるいは、makeで拡張子を利用したルールでビルドした方が楽かもしれないよ。
652 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 12:17:25.65 ] >>651 >あるいは、makeで拡張子を利用したルールでビルドした方が楽かもしれないよ。 その手を考えていませんでした。ご指摘ありがとうございます。