【入門】Common Lisp その8【質問よろず】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2011/07/06(水) 17:15:15.55初心者のQ&A
本スレでは恥ずかしくて聞けない人のQ&A
本スレは高度すぎて割り込めない人のQ&A
linuxでなくてwindowsでやりたいんですが・・・Q&A
lispを使用してC#やJAVAの代替にするための方法(おまけ)
ま、ゆっくりたりましょう。
「いいものの本質は、いかなる時代においても変わらない」byパワーズ
(list
(url http://pc8.2ch.net/test/read.cgi/tech/1101386936/l50 :part 1)
(url http://pc11.2ch.net/test/read.so/tech/1140012484/l50 :part 2)
(url http://pc11.2ch.net/test/read.so/tech/1181479267/l50 :part 3)
(url http://pc11.2ch.net/test/read.cgi/tech/1201402366/l50 :part 4)
(url http://pc11.2ch.net/test/read.cgi/tech/1215834213/l50 :part 5)
(url http://pc12.2ch.net/test/read.cgi/tech/1234884136/l50 :part 6)
(url http://hibari.2ch.net/test/read.cgi/tech/1270370267/l50 :part 7)
□テンプレート置き場□
ttp://wiki.fdiary.net/lisp/ (id:guest pass:cl)
0655デフォルトの名無しさん
2011/12/26(月) 07:33:27.39ありがとうございます。参考にさせていただきます。
0656デフォルトの名無しさん
2011/12/26(月) 19:37:27.23取得するのは file-write-date でできましたが
任意の時刻に書き換える方法がわかりません
0657デフォルトの名無しさん
2011/12/26(月) 20:03:07.290658デフォルトの名無しさん
2011/12/26(月) 20:09:07.78標準ではないみたい。
http://rosettacode.org/wiki/File_modification_time#Common_Lisp
OSのAPIにアクセスするには、OsicatかIOLibを使えばできる。
SBCLならPOSIXモジュールがあるよ。
IOLib
http://common-lisp.net/project/iolib/
Osicat
http://common-lisp.net/project/osicat/
使い方分からなかったら教えて。
0659デフォルトの名無しさん
2011/12/26(月) 20:26:56.74> OSのAPIにアクセスするには、OsicatかIOLibを使えばできる。
うーん
0660デフォルトの名無しさん
2011/12/26(月) 20:32:42.97ごめん。表現の仕方が悪かった?
POSIXのAPIにアクセスするなら、ではどう?
0661デフォルトの名無しさん
2011/12/26(月) 23:02:25.660662デフォルトの名無しさん
2011/12/27(火) 02:03:40.58はあ? あるに決まってんじゃん、この前ソース眺めたとき確かに見たわこのボケが!
と思って見返したら、どうみても俺が痴呆です本当にありがとうございました。
代わりに供物を用意したので命だけは見逃してください。
http://paste.lisp.org/display/126696
0664662
2011/12/27(火) 03:21:58.01大変失礼致しました。指摘の通り、>>658の4行目以降は嘘なので信じないでください。
また、余談ですが、Windows APIのバインディングとして、
Doors
https://github.com/Lovesan/doors
というDmitry Ignatievによるライブラリがございまして、
https://github.com/Lovesan/doors/blob/master/system/time.lisp
に今回のような時刻関係のAPIが定義されている様ですので、興味をお持ちになったらお試しください。
というわけで、どうぞ上の恥ずかしいアレっぷりを記憶から速やかに抹消してください。
さもないと枕元に立ちます。
0665デフォルトの名無しさん
2011/12/27(火) 11:31:19.14CL-USER> (setq L '(1))
(1)
CL-USER> L
(1)
CL-USER> l
(1)
商用CLは大文字・小文字を区別すると聞くのでその処理系と互換を持たせた仕様
だとすばらしいです。
0666デフォルトの名無しさん
2011/12/27(火) 14:21:17.64> (窓)http://paste.lisp.org/display/126696
おお、O_RDWR | O_APPENDでopenしてすぐcloseするオールドスタイル!
0667デフォルトの名無しさん
2011/12/27(火) 15:42:39.91商用でなくともCLは大文字と小文字を区別する
readtable-caseで検索すればいいと思う
0668デフォルトの名無しさん
2011/12/27(火) 20:39:28.460669デフォルトの名無しさん
2011/12/30(金) 11:18:57.56インデントがうまくいかないないのですが
うまくいくヒント設定方法よろしくお願いします。
0670デフォルトの名無しさん
2011/12/30(金) 11:21:41.50(setq-default indent-tabs-mode nil)
でもどううまくいかないか具体的に書いたほうがいいよ
0671デフォルトの名無しさん
2011/12/30(金) 12:44:17.220672デフォルトの名無しさん
2011/12/31(土) 00:11:35.74handler-caseのインデントが狂ったりしたことは前にあったな。詳しく調べてないけど。
0673デフォルトの名無しさん
2011/12/31(土) 01:28:06.63ifのインデントなんですが
0674デフォルトの名無しさん
2011/12/31(土) 01:35:17.77ifの次が下がり過ぎるのですが
0675デフォルトの名無しさん
2011/12/31(土) 01:39:54.69こうしたい、という例と、こうなる、という例を貼ってくれ。
そうすれば、もっとみんな適切に回答できる。
0676デフォルトの名無しさん
2011/12/31(土) 01:42:13.47nil
1
2)
うちはこんなんだな
0677デフォルトの名無しさん
2011/12/31(土) 01:53:00.16うちもこんなんだな。
(
if
nil
1
2
)
マジレスすると俺のはこんなんだが、
(if nil
1
2)
もしかして、伝統的なスタイルを期待してんのかね?
thenとelseを揃えないRMSの好きなあれ。
0678デフォルトの名無しさん
2011/12/31(土) 02:54:24.331
2)
これか?
0679デフォルトの名無しさん
2011/12/31(土) 04:40:35.58(do
こうしたいのですが
(if (test)
(do
こうなってしまいます。
0680デフォルトの名無しさん
2011/12/31(土) 04:43:00.81(if (test)
(do
こうしたいのですが
(if (test)
(do
こうなってしまいます。
0681デフォルトの名無しさん
2011/12/31(土) 07:18:16.08LISPとか教科書・勉強で使うくらいしかないんでは。
LISPでC#やJavaやPHPの代替できるくらいにライブラリあるのかよ。
0682デフォルトの名無しさん
2011/12/31(土) 07:34:44.410683デフォルトの名無しさん
2011/12/31(土) 09:38:14.04これじゃだめ?
M-x common-lisp-set-style
Specify Common Lisp indentation style: classic
0684デフォルトの名無しさん
2011/12/31(土) 16:04:33.81それってなんていう.el?
M-x common-lisp-set-styleなんてないし、aprops-variableでも関連変数が引っかからないんだが
0685デフォルトの名無しさん
2011/12/31(土) 17:29:40.54横からあれだけど
slimeのcontribの中に入ってなかったっけ?slime-setupだかでなにかロードさせる必要があったような。
今PCの前にいないんで曖昧で間違ったこといってるかもしれないけど。
0686デフォルトの名無しさん
2011/12/31(土) 19:31:34.40slime-setup の引数で渡すとロードしてくれる
うちの .emacs は以下のような設定になってる
(slime-setup '(slime-fancy slime-indentation))
0687デフォルトの名無しさん
2011/12/31(土) 23:06:41.50サンクス
こういうのかあるのね
M-X common-lisp-set-style
basic
classic
modern
sbcl
0688デフォルトの名無しさん
2011/12/31(土) 23:09:05.092012はCommon Lispが大復活することを願って。
0689デフォルトの名無しさん
2012/01/01(日) 03:51:43.39詳しくお願いします。
0690デフォルトの名無しさん
2012/01/01(日) 07:29:22.27再来年を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上でマークしても評価されるんじゃないかな。
0691デフォルトの名無しさん
2012/01/02(月) 23:56:10.75http://cl.cddddr.org/index.cgi?SLIME%3aslime-indentation
0692デフォルトの名無しさん
2012/01/03(火) 01:56:05.820693デフォルトの名無しさん
2012/01/04(水) 06:25:02.26追加お願いします。
0694デフォルトの名無しさん
2012/01/04(水) 10:39:17.77691うまくできませんでした
設定方法よかったらお願いいたします。
0695デフォルトの名無しさん
2012/01/04(水) 14:21:46.13>>683-693までを3回読め、文盲
0696デフォルトの名無しさん
2012/01/04(水) 17:18:50.00どのように上手くいかなかったのかkwsk。
どういう設定をして、どういうエラーが出たとかを「可能な限り詳細」に。
0697デフォルトの名無しさん
2012/01/04(水) 23:58:13.38よめません
0698デフォルトの名無しさん
2012/01/05(木) 04:49:20.75sbclのdescribe(呼ぶと引数リストも表示する)だと内部でsb-kernel:%simple-fun-arglistを呼んでいるぽいですけど
0699デフォルトの名無しさん
2012/01/05(木) 07:15:50.25.emacsに
(slime-setup '(slime-fancy slime-indentation))
を書く
M-x common-lisp-set-styleすると
M-x common-lisp-set-style[No match]
0700デフォルトの名無しさん
2012/01/05(木) 07:28:30.22.emacsに
(slime-setup '(slime-fancy slime-indentation))
を書く
M-x common-lisp-set-styleすると
M-x common-lisp-set-style[No match]
0701デフォルトの名無しさん
2012/01/05(木) 07:57:07.400702デフォルトの名無しさん
2012/01/05(木) 08:04:00.79Emacs再起動してもだめなんですよ。
0703デフォルトの名無しさん
2012/01/05(木) 08:12:37.95そもそも slime のインストールディレクトリに contrib/slime-indentation.el と
contrib/slime-cl-indent.el のファイルある?
0704デフォルトの名無しさん
2012/01/05(木) 08:16:17.89環境は? Lispbox? 普通にインストールしたEmacs?
(slime-setup '(slime-fancy slime-indentation))
をC-x C-eで評価するとどうなる? 起動時に何かエラーメッセージは?
*Messages*に何かエラーが出てる?
>>699の状況を説明すると、正常にslime-indentationがロードされていない。
だからそこで定義されているcommon-lisp-set-styleも実行できない。
0705デフォルトの名無しさん
2012/01/05(木) 08:41:25.08普通にインストールしたEmacsです。
contrib/slime-indentation.el はあるけど
contrib/slime-cl-indent.el はない
0706デフォルトの名無しさん
2012/01/05(木) 10:40:33.98環境を晒せよ、バカ
0707デフォルトの名無しさん
2012/01/05(木) 10:47:45.62emacs関連だけでも書いておくといいかも。
0708デフォルトの名無しさん
2012/01/05(木) 21:58:26.64ubunto11.04
sbcl
emacs23.2.1
0709デフォルトの名無しさん
2012/01/05(木) 22:33:15.350710デフォルトの名無しさん
2012/01/05(木) 23:19:40.86"普通"と言っているんだから、このバージョンなんじゃない。
環境設定苦手なのであとはよろしく。
Package: slime
Version: 1:20100722-1
Depends: emacsen-common, dpkg (>= 1.15.4) | install-info
Recommends: cl-swank (= 1:20100722-1), info | info-browser, emacs23 | emacs22 | emacs-snapshot | xemacs21
Filename: pool/universe/s/slime/slime_20100722-1_all.deb
Size: 1269716
ftp://ftp.riken.jp/pub/Linux/ubuntu/dists/natty/universe/binary-amd64/Packages.bz2
ftp://ftp.riken.jp/pub/Linux/ubuntu/pool/universe/s/slime/
0711デフォルトの名無しさん
2012/01/06(金) 00:00:15.48http://packages.ubuntu.com/ja/natty/all/slime/filelist
で、どうやらslime-cl-indent.elは最近入ったファイルらしい
http://lists.common-lisp.net/pipermail/slime-cvs/2011-May/009688.html
http://random-state.net/log/3513839648.html
ちなみにUbuntu Preciseには入る模様
http://packages.ubuntu.com/precise/all/slime/filelist
で、どうすればいいかはUbuntu使ってないので私もわかりますん
0712デフォルトの名無しさん
2012/01/06(金) 00:00:24.01slime 1:20100722-1
0713710
2012/01/06(金) 00:23:29.38しょう、きっと。
環境Kubuntu10.04 amd64だけど、無理やりslime_20111027-2_all.debを入れると>>683が出るね。
wget ftp://ftp.riken.jp/pub/Linux/ubuntu/pool/universe/s/slime/slime_20111027-2_all.deb
sudo dpkg -i slime_20111027-2_all.deb
(setq inferior-lisp-program "/usr/bin/sbcl")
(require 'slime)
(setq slime-default-lisp "sbcl") ;; いらないかも
(slime-setup '(slime-repl))
(slime-setup '(slime-fancy slime-indentation))
>>711
公式のcurrentバージョン(2012-01-05)のChangelogを読んだけど、書いてなかったなあ。
作法としてChangelogをみるのが正しくないのかね。
0714デフォルトの名無しさん
2012/01/06(金) 01:00:08.280715デフォルトの名無しさん
2012/01/06(金) 07:20:57.78slime/ChangeLogではなくslime/contrib/ChangeLogに書いてあるよ
0716デフォルトの名無しさん
2012/01/06(金) 12:26:33.41本当だ
2011-05-10 Nikodemus Siivola <nikodemus@r****dom-state.net>
* slime-cl-indent.el: New file. Copy of cl-indent.el from current
GNU Emacs HEAD. Replaces the ancient copy previously kept as part
of slime-indentation.el.
* slime-indentation.el (slime-handle-indentation-update): Deleted.
Since we now directly replace the previous version of
cl-indent.el, the normal version defined in slime.el works fine.
ALSO DELETED: the inline copy of 1995 vintage cl-indent.el.
slime-cl-indent.clと言い始めた人は某ディストリを使っていたのかな。
2011-05-10 以前の設定ってどうするんだろうなあ。今はそっちを推奨した方が
良いかもなあ。
それかyum, aptなどのパッケージシステムで極力管理せずにquicklispで
swank(slime?)さえも管理させるか。
0717デフォルトの名無しさん
2012/01/06(金) 15:24:13.510718デフォルトの名無しさん
2012/01/06(金) 18:29:18.55indentをイジりたいなら(特に)2011-05-10 以前の設定はこんな感じかな。
他にもっと適切な設定があるかもしれないけど。
.emacs.el
(setq lisp-indent-function 'common-lisp-indent-function)
;;(setq lisp-indent-offset nil)
;;(setq lisp-indent-offset -2)
(setq lisp-indent-offset 2)
0719デフォルトの名無しさん
2012/01/07(土) 01:25:01.920720デフォルトの名無しさん
2012/01/07(土) 07:41:14.53emacs関連ってyum, aptなどを使わないのがデフォじゃないのか?
Linux系以外のOSと操作感変わるのはいやじゃね?
0721デフォルトの名無しさん
2012/01/07(土) 10:38:28.61自分の話ではなく、emacsを使い始めて1年以内の人を対象にしているんだけど、
1年以上の人は自力でがんばって設定してくれと思う。
あと仮想OSも安定したし、マルチプラットフォームの操作感の統一性は求めて
いないなあ。ssh経由環境を整えた方が労力が少ないよ。
0722デフォルトの名無しさん
2012/01/07(土) 15:14:50.580723デフォルトの名無しさん
2012/01/07(土) 15:35:48.33って話?
0724デフォルトの名無しさん
2012/01/07(土) 17:03:50.76この本が出たのが88年だから24年前か
0725デフォルトの名無しさん
2012/01/08(日) 00:03:57.95いまや教祖。。。
0726デフォルトの名無しさん
2012/01/08(日) 00:10:55.78http://www.wikinoticia.com/images/www.vivalinux.com.ar.xml.rss/i44.tinypic.com.aau5i9.png
http://assets.cio.com/documents/cache/images/slideshows/2009/04/hippie_programmers.jpg
http://www.computerhistory.org/timeline/images/1983_stallman_large.jpg
http://www.foreignremarks.com/images/2007_0607stallman0029.jpg
あるlispハッカーの変遷。
0727デフォルトの名無しさん
2012/01/08(日) 00:39:46.75まあでも、今でも痩せればイケメンなのは間違いない。
0728デフォルトの名無しさん
2012/01/08(日) 03:24:39.800729デフォルトの名無しさん
2012/01/08(日) 19:17:24.090730デフォルトの名無しさん
2012/01/08(日) 22:57:13.63vi使ってる人いる?P・Gはvi派らしいけど
0731デフォルトの名無しさん
2012/01/08(日) 23:12:26.42自分はEmacsのキーバインドがダルくてviper-mode使ってるけど、
Vimpulseとか使ってる人も中にはいるかもしれない。
0732はちみつ餃子 ◆8X2XSCHEME
2012/01/09(月) 00:13:04.38仕事の内容によってはカスタマイズされた環境に慣れるのは良くない
こともあるだろうから、そういう人は vi を使うと聞いたことがあるよ。
グレアム御大はエディタでなく言語の側で頑張れ派なので vi を使うとどこかで読んだ。
0733デフォルトの名無しさん
2012/01/09(月) 00:26:34.090734デフォルトの名無しさん
2012/01/09(月) 00:29:45.25インデント?
0735デフォルトの名無しさん
2012/01/09(月) 00:30:28.89インデント?
0736デフォルトの名無しさん
2012/01/09(月) 01:31:58.40> グレアム御大はエディタでなく言語の側で頑張れ派なので vi を使うとどこかで読んだ。
viでshellコマンド使えるよね?
vi を使って、LISPでパースしたりうんたらしたりしているのかね。LISPでvi上で文字を
色付けしたりとかもできるのかな。SHELLを何を使っているか、知らないけど、SHELL側から
色付けアプローチができるんかな。
vi使いのLISPerの動画ってないかね。マジでみてみたいんだよなあ。
超高等テクニックを紹介している英語サイトでもいい。
0737デフォルトの名無しさん
2012/01/09(月) 11:48:05.900738デフォルトの名無しさん
2012/01/09(月) 13:48:06.72プログラム組むんならそれもありだろうけど,
Linux 以外でデフォで vim ってあるんかよ?
0739デフォルトの名無しさん
2012/01/09(月) 15:10:37.13vimは使えるわ。
viの話が聞きたい。
>>738
Linuxでもvimは標準で入っていないのが多いよ。
0740デフォルトの名無しさん
2012/01/10(火) 06:28:23.080741デフォルトの名無しさん
2012/01/10(火) 07:16:19.47http://okmij.org/ftp/Scheme/monad-in-Scheme.html
0742デフォルトの名無しさん
2012/01/10(火) 07:28:41.91それならこっちか。
http://groups.google.com/group/comp.lang.functional/msg/2fde5545c6657c81
英語だけど端的でとても分かりやすいと思う。
0743デフォルトの名無しさん
2012/01/10(火) 09:50:31.710744デフォルトの名無しさん
2012/01/11(水) 12:51:58.52http://cacm.acm.org/magazines/2012/1/144801-john-mccarthy-1927-2011/fulltext
>he was also one of the first to investigate how to rigorously prove properties of programs
この一文がよく分からない
証明関係の話だとは思うんだがどういうことなんだろう
それとこの一文に興味を持ちました
>McCarthy was "a very, very clear thinker regardless of the topic—politics, sociology, the water supply in the San Andreas Basin, anything," recalls Hayes.
paul graham御大のようにずけずけと切り込んでいくスタイルだったんでしょうかね
エッセイ集のようなものがあれば読んでみたいな
そうそう、figureにある御大の若い日の姿がいい
http://deliveryimages.acm.org/10.1145/2070000/2063187/figs/uf1.jpg
なんというか、目つきが鋭くて黒ひげが凛々しい
0745デフォルトの名無しさん
2012/01/11(水) 14:53:18.170746デフォルトの名無しさん
2012/01/11(水) 15:37:08.04>>1のパワーズとはどういう人なのですか
0747デフォルトの名無しさん
2012/01/11(水) 17:31:29.460748デフォルトの名無しさん
2012/01/11(水) 17:47:31.46後ろに説明あるじゃない。
>He invented abstract syntax; created the nonmonotonic logic technique called circumscription; and invented the garbage collector.
0749デフォルトの名無しさん
2012/01/12(木) 09:19:35.64http://www-formal.stanford.edu/jmc/basis.html
0750デフォルトの名無しさん
2012/01/12(木) 15:38:06.07>2003年ニューヨークのConferenceではものすごく感動的なトークをし
マッカーシーは2003年にどんなトークをしたのでしょう?
0751デフォルトの名無しさん
2012/01/12(木) 18:28:37.32http://cl.cddddr.org/index.cgi?Tutorial%3ALisp%E3%81%A7%E4%BA%BA%E5%B7%A5%E7%9F%A5%E8%83%BD
例はAllegro Common Lispで開発を進めるということになっていますが、
windowsのsbcl+emacs+slimeで試したいです
http://blog.livedoor.jp/s-koide/archives/1877088.html
>そのほかの Common Lisp システムで進めるかたは,ご自分で環境設定とか,コードの修正などをお願いいたします.
こう書いてあるのですが、case-sensitiveにするために
(setf (readtable-case *readtable*) :preserve)
と書くのはわかったのですが、ほかにどういう設定をしてpaipのソースファイルをどこに置けばいいのですか
0752デフォルトの名無しさん
2012/01/12(木) 20:43:49.62comp.lang.lispでも話題になったから検索してみて。
John "Practical" McCarthy
でたどれると思う。
しかしそのページILCのIがInternetになってるな。
近くの人教えてあげて。
0753デフォルトの名無しさん
2012/01/13(金) 16:04:07.76https://groups.google.com/group/comp.lang.lisp/browse_thread/thread/6c75cae46f065843/f06272a6e41dfdfa?hl=ja&lnk=gst&q=John+%22Practical%22+McCarthy#f06272a6e41dfdfa
Anton van Straatenさんの発言をまとめると…
マッカーシーはチャーチのラムダ計算の考えをlispに部分的に取り入れた、
万が一ラムダ計算をlispのデザイン全体に持ち込んでいたら
実用的なプログラミング言語というものを誤って推し進めたかも、
純粋な型無しのラムダ計算にひどく捕らわれていたかもしれない
で、実際のところは無名関数を設けるラムダの表現の意味を拝借したのだ、と
lispを開発していたときマッカーシーは
チャーチの本のコピーを持ってはいたが最初から最後まで読んだわけでは無かった
飛ばし読みをしていた
そのおかげで上のようなデメリットが避けられた
lispを作った本人がlispの限界とその理由をかいつまんで解説したと
理解したのですが、これでいいでしょうか
0754デフォルトの名無しさん
2012/01/13(金) 16:41:45.59理論的整合性の泥沼にはまらずに済み、
実践的な言語設計をすることが出来たってことでしょ。
もともと数式評価するFORTRANライブラリ書いていたわけだから、
下手すりゃSucc(Succ(Zero))とか別の方向行っちゃうもんね。
■ このスレッドは過去ログ倉庫に格納されています