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)
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で拡張子を利用したルールでビルドした方が楽かもしれないよ。 その手を考えていませんでした。ご指摘ありがとうございます。
653 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 02:56:58.14 ] Common Lispの勉強に役立つサイトでおすすめのところを教えてください。 clispを入れて、カーとクダーは覚えました。他にどんな関数があるか知りません。 末尾再帰とか以前に再帰がわかりません。CLOSに興味があります。
654 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 03:17:56.14 ] >>653 www.geocities.jp/m_hiroi/index.html あとはこのスレのテンプレとか見て
655 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 07:33:27.39 ] >>654 ありがとうございます。参考にさせていただきます。
656 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 19:37:27.23 ] 指定したファイルの更新時刻を変更するにはどうすればよいのでしょうか 取得するのは file-write-date でできましたが 任意の時刻に書き換える方法がわかりません
657 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 20:03:07.29 ] SBCL@UNIXならsb-posix:utimes
658 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 20:09:07.78 ] >>656 標準ではないみたい。 rosettacode.org/wiki/File_modification_time#Common_Lisp OSのAPIにアクセスするには、OsicatかIOLibを使えばできる。 SBCLならPOSIXモジュールがあるよ。 IOLib common-lisp.net/project/iolib/ Osicat common-lisp.net/project/osicat/ 使い方分からなかったら教えて。
659 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 20:26:56.74 ] >>658 > OSのAPIにアクセスするには、OsicatかIOLibを使えばできる。 うーん
660 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 20:32:42.97 ] >>659 ごめん。表現の仕方が悪かった? POSIXのAPIにアクセスするなら、ではどう?
661 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 23:02:25.66 ] そこにutime(2), utimes(2), futimes(2), utimensat(2)があるわけ?
662 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 02:03:40.58 ] >>661 はあ? あるに決まってんじゃん、この前ソース眺めたとき確かに見たわこのボケが! と思って見返したら、どうみても俺が痴呆です本当にありがとうございました。 代わりに供物を用意したので命だけは見逃してください。 paste.lisp.org/display/126696
663 名前:656 mailto:sage [2011/12/27(火) 03:05:55.45 ] 書き忘れていました。osはwindowsでsbclです。 >>658-662 ありがとうございます。>>662 でokでした。
664 名前:662 mailto:sage [2011/12/27(火) 03:21:58.01 ] >>663 大変失礼致しました。指摘の通り、>>658 の4行目以降は嘘なので信じないでください。 また、余談ですが、Windows APIのバインディングとして、 Doors https://github.com/Lovesan/doors というDmitry Ignatievによるライブラリがございまして、 https://github.com/Lovesan/doors/blob/master/system/time.lisp に今回のような時刻関係のAPIが定義されている様ですので、興味をお持ちになったらお試しください。 というわけで、どうぞ上の恥ずかしいアレっぷりを記憶から速やかに抹消してください。 さもないと枕元に立ちます。
665 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 11:31:19.14 ] SBCLで大文字・小文字を区別する方法ってありませんか? CL-USER> (setq L '(1)) (1) CL-USER> L (1) CL-USER> l (1) 商用CLは大文字・小文字を区別すると聞くのでその処理系と互換を持たせた仕様 だとすばらしいです。
666 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 14:21:17.64 ] >>662 > (窓)paste.lisp.org/display/126696 おお、O_RDWR | O_APPENDでopenしてすぐcloseするオールドスタイル!
667 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 15:42:39.91 ] >>665 商用でなくともCLは大文字と小文字を区別する readtable-caseで検索すればいいと思う
668 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 20:39:28.46 ] readtable-caseは>>436 あたりからの話を見れば
669 名前:デフォルトの名無しさん [2011/12/30(金) 11:18:57.56 ] emacs+slimeでお インデントがうまくいかないないのですが うまくいくヒント設定方法よろしくお願いします。
670 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 11:21:41.50 ] ついこないだこんな設定を加えた (setq-default indent-tabs-mode nil) でもどううまくいかないか具体的に書いたほうがいいよ
671 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 12:44:17.22 ] indent がうまくいかないなんてあったっけ。
672 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 00:11:35.74 ] unwind-protectのformを次の行に置くとき、期待した場所より余計に下がったり、 handler-caseのインデントが狂ったりしたことは前にあったな。詳しく調べてないけど。
673 名前:デフォルトの名無しさん [2011/12/31(土) 01:28:06.63 ] >>669 ifのインデントなんですが
674 名前:デフォルトの名無しさん [2011/12/31(土) 01:35:17.77 ] >>673 ifの次が下がり過ぎるのですが
675 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 01:39:54.69 ] >>674 こうしたい、という例と、こうなる、という例を貼ってくれ。 そうすれば、もっとみんな適切に回答できる。
676 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 01:42:13.47 ] (if nil 1 2) うちはこんなんだな
677 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 01:53:00.16 ] >>676 うちもこんなんだな。 ( if nil 1 2 ) マジレスすると俺のはこんなんだが、 (if nil 1 2) もしかして、伝統的なスタイルを期待してんのかね? thenとelseを揃えないRMSの好きなあれ。
678 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 02:54:24.33 ] (if nil 1 2) これか?
679 名前:デフォルトの名無しさん [2011/12/31(土) 04:40:35.58 ] (if (test) (do こうしたいのですが (if (test) (do こうなってしまいます。
680 名前:デフォルトの名無しさん [2011/12/31(土) 04:43:00.81 ] ↑間違いましたすみません (if (test) (do こうしたいのですが (if (test) (do こうなってしまいます。
681 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 07:18:16.08 ] 言語構造よりライブラリの豊富さが実用上大事だ。 LISPとか教科書・勉強で使うくらいしかないんでは。 LISPでC#やJavaやPHPの代替できるくらいにライブラリあるのかよ。
682 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 07:34:44.41 ] そうなんだよ。だからこんな所に来なくて大丈夫だ。お疲れ。
683 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 09:38:14.04 ] >>679 これじゃだめ? M-x common-lisp-set-style Specify Common Lisp indentation style: classic
684 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 16:04:33.81 ] >>683 それってなんていう.el? M-x common-lisp-set-styleなんてないし、aprops-variableでも関連変数が引っかからないんだが
685 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 17:29:40.54 ] >>684 横からあれだけど slimeのcontribの中に入ってなかったっけ?slime-setupだかでなにかロードさせる必要があったような。 今PCの前にいないんで曖昧で間違ったこといってるかもしれないけど。
686 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 19:31:34.40 ] >>684 >>685 が書いてるように ${SLIME_ROOT}/contrib 下に入ってる slime-setup の引数で渡すとロードしてくれる うちの .emacs は以下のような設定になってる (slime-setup '(slime-fancy slime-indentation))
687 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 23:06:41.50 ] >>686 サンクス こういうのかあるのね M-X common-lisp-set-style basic classic modern sbcl
688 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 23:09:05.09 ] 皆さんよいお年を! 2012はCommon Lispが大復活することを願って。
689 名前:デフォルトの名無しさん [2012/01/01(日) 03:51:43.39 ] >>687 詳しくお願いします。
690 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 07:29:22.27 ] 去年、John McCarthy総裁が崩御されたし、今年一年は大人しくするぜ。 再来年をCommon Lispの飛躍の年にしましょう。 >>688 >>683 >>684 自分 >>685 >>686 の流れだよ。 slimeが入っていたら動くんじゃないかな。 >>685-686 のcontribは自分の環境だと/usr/share/emacs/site-lisp/slime/contrib/ のことなのかな。よくわからん。特別設定せずにM-X eval-regionして>>683 のが 動いちゃったし。classic入力の所でTabを押すと他の候補が出てくるよ。 老婆心だけど、(slime-setup '(slime-fancy slime-indentation))をマークして M-x eval-regionするとemacs lispで評価されて設定される。 navi2ch上でマークしても評価されるんじゃないかな。
691 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 23:56:10.75 ] 力尽きた。まだ追加することあったら誰かやって。 cl.cddddr.org/index.cgi?SLIME%3aslime-indentation
692 名前:デフォルトの名無しさん [2012/01/03(火) 01:56:05.82 ] ↑ありがとうございます。
693 名前:デフォルトの名無しさん [2012/01/04(水) 06:25:02.26 ] >>691 追加お願いします。
694 名前:デフォルトの名無しさん [2012/01/04(水) 10:39:17.77 ] >>683 691うまくできませんでした 設定方法よかったらお願いいたします。
695 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 14:21:46.13 ] >>694 >>683-693 までを3回読め、文盲
696 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 17:18:50.00 ] >>694 どのように上手くいかなかったのかkwsk。 どういう設定をして、どういうエラーが出たとかを「可能な限り詳細」に。
697 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 23:58:13.38 ] >文盲 よめません
698 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 04:49:20.75 ] 関数の引数リストを取得する方法って標準の範囲であるんでしょうか sbclのdescribe(呼ぶと引数リストも表示する)だと内部でsb-kernel:%simple-fun-arglistを呼んでいるぽいですけど
699 名前:デフォルトの名無しさん [2012/01/05(木) 07:15:50.25 ] >>694 .emacsに (slime-setup '(slime-fancy slime-indentation)) を書く M-x common-lisp-set-styleすると M-x common-lisp-set-style[No match]
700 名前:デフォルトの名無しさん [2012/01/05(木) 07:28:30.22 ] >>696 ↑間違いました。 .emacsに (slime-setup '(slime-fancy slime-indentation)) を書く M-x common-lisp-set-styleすると M-x common-lisp-set-style[No match]