X



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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2014/09/21(日) 22:49:21.73ID:FJokPHUt
Lisp Schemeスレでは恥ずかしくて聞けないようなことを質問したり、
Lisp Schemeスレの話題は高度すぎて気後れする人が話しあったり。
それ以外でもCommon Lispについての話題なら歓迎します。

ま、ゆっくりやりましょう。

「いいものの本質は、いかなる時代においても変わらない」byパワーズ

■前スレ
【入門】Common Lisp その10【質問よろず】
http://peace.2ch.net/test/read.cgi/tech/1361341876/

■Wiki
http://wiki.fdiary.net/lisp/ (id:guest pass:cl)
http://cl.cddddr.org/
http://tips.lisp-users.org/common-lisp/
0563デフォルトの名無しさん
垢版 |
2019/02/02(土) 07:45:51.33ID:DNtrULkT
>>562
そのセリフはせめてリスパーになってから言ったらどおや?陸リスパーさんw
0566デフォルトの名無しさん
垢版 |
2019/02/02(土) 12:43:40.25ID:8UgzjBVu
り…陸リスパー
0569デフォルトの名無しさん
垢版 |
2019/02/02(土) 22:26:20.61ID:zdLK2rou
>>563
陸リスパーはリスパーじゃないらしいが、意味が分からんw
取り敢えず知能指数が75程度かね
0570デフォルトの名無しさん
垢版 |
2019/02/03(日) 11:47:11.28ID:o6ig8vkN
陸リスパーさん、案の定バカやったwww
0573デフォルトの名無しさん
垢版 |
2019/06/15(土) 16:34:52.25ID:5WxVHbel
defmacroだとdestructuring bind?が使えて
(defmacro test ((a b &optional c) d)
(print (list a b c d))
nil)
(test (1 2) 4) => (1 2 NIL 4)
みたいに書けるけど、&optionalや&keyの後に書こうとしてもSBCLだとdefmacroを評価した時点でエラーになる
&restの後ろには一応書けるっぽい
必須引数と&restの所には書けるけど、&optionalと&keyの所には書けないという認識で良いのか?
もし&optionalの所に書けるなら書き方を教えてくれ
0575デフォルトの名無しさん
垢版 |
2019/06/23(日) 17:17:52.99ID:MRp+xueZ
>>574
この記事見たらちゃんと書けることが分かった
自分が前に試した時は何か書き方を間違っていたようだ
取り敢えずモヤモヤが晴れたんで助かりました
0576デフォルトの名無しさん
垢版 |
2019/06/26(水) 20:14:20.90ID:Y3pTO8/n
コードを C や perl や Lisp や python に書き換えて速度比べていたんですが
perl に速度負けしたのは、ちゃんと Lisp 書けるようになれば逆転できますかね?
処理系は CCL Version 1.11.5/v1.11.5 (WindowsX8632)

perl に負けるのは悔しいんですよ
0578デフォルトの名無しさん
垢版 |
2019/06/26(水) 20:46:18.82ID:Y3pTO8/n
早い
まだリファクタリングしてないのにこの速さ
ありがとうございます。ここまで scbl が速いとは

0.331 C
0.616 scbl
0.749 perl
0.943 CCL
2.912 python
0579デフォルトの名無しさん
垢版 |
2019/06/27(木) 01:23:25.87ID:dlyc1cFh
CとPerlが2倍程度しか違わないとかどんなコードか気になる
普通二桁違ってもおかしくない
0582デフォルトの名無しさん
垢版 |
2019/06/27(木) 17:18:17.57ID:9Zxtgl6E
gcc でも gcc -Ofast -march=native でも
このコードは早さ変らなかった

Cをもっと早く走らせる書きかたはあると思う
しかしながら当面の目標は、Lispなどで
早く走るコードに仕上げることだ
0583デフォルトの名無しさん
垢版 |
2019/09/21(土) 00:38:07.12ID:xRjuzSxf
squeakやpharoみたいな完全フリーなIDEってないの?
0585デフォルトの名無しさん
垢版 |
2019/09/21(土) 01:59:38.19ID:vpc6CIH7
IDEを強調するならフリーなやつは存在しないんじゃない
有償ならLispWorksとかあるけど
0588デフォルトの名無しさん
垢版 |
2019/09/21(土) 17:11:00.50ID:icgczTg/
君が造ろうと思わないなら同じ理由じゃね
0592デフォルトの名無しさん
垢版 |
2019/09/21(土) 22:17:44.52ID:9d3EeJ1d
マジアスペなのか何かのギャグで言ってるのかわかんないよw
それはわかってるし、そんなことは訊いてないんですけどw
0594デフォルトの名無しさん
垢版 |
2019/09/22(日) 13:10:38.79ID:y42gsAly
漏れには ID:9d3EeJ1d がアスペに観える
0596デフォルトの名無しさん
垢版 |
2019/09/23(月) 00:17:42.37ID:yOVeMM4I
質問はこれね、答えはyes/noしかありません
おk?

583 自分:デフォルトの名無しさん[] 投稿日:2019/09/21(土) 00:38:07.12 ID:xRjuzSxf
squeakやpharoみたいな完全フリーなIDEってないの?

584 自分:デフォルトの名無しさん[sage] 投稿日:2019/09/21(土) 00:44:47.91 ID:9d3EeJ1d [1/4]
Emacs+Slimeで困ってないとかそういうのじゃなくて
0597デフォルトの名無しさん
垢版 |
2019/09/23(月) 11:11:12.88ID:3qdqqJ07
64bitのときって引数6個まではスタック使わずにレジスタ渡しなんだな
0598デフォルトの名無しさん
垢版 |
2019/10/13(日) 19:14:39.59ID:5s4kkgRn
非LISPマシン(≒汎用CPU)上でのLISP処理系でCDRコーディングが流行らないのって何で?
0599デフォルトの名無しさん
垢版 |
2019/10/14(月) 00:04:21.63ID:MCqb83NJ
CDRコーディングはメモリを節約するためのものだけど、今時そんな事する必要がないからだろ
0601デフォルトの名無しさん
垢版 |
2019/10/14(月) 22:36:05.59ID:4/RblZEa
CDRコーディングでメモリ参照の局所性などは向上するのでむしろ現代のCPUで効果があるという話もある
CommonLispの場合,リストはイミュータブルでないので書き換えが発生すると間接参照に置き換わるためどこまで旨味があるかだが
0602デフォルトの名無しさん
垢版 |
2019/10/15(火) 09:45:03.23ID:aaeMZMJi
たかがリストの参照に条件分岐が必要になるから、むしろ現代のCPUには速度的に致命的なペナルティが有る
Lispはリストの使い勝手が良いからつい何でも使い勝ちだけど、ある程度以上の可変長のデータには可変長配列を使うべきだろう
0603デフォルトの名無しさん
垢版 |
2019/10/18(金) 01:17:14.39ID:eIYWybUZ
先生質問です!モダーンな言語に慣れた身としては、括弧よりもシンボルが大文字なことが気になります!
SQLと一緒で、なんだか怒られているような、コードに怒りの感情がくっついているような感触がします!
0604デフォルトの名無しさん
垢版 |
2019/10/18(金) 03:05:27.14ID:YKg3bugE
クラス名とインスタンス名がどっちも先頭小文字文化で区別がつかないことや
カプセル化を事実上放棄していることについても触れてあげてね
0608デフォルトの名無しさん
垢版 |
2019/10/26(土) 15:03:46.18ID:a/Ne+y1n
setf 万能な感じだけど
オブジェクトの外からsetfしたら書きかえられたり
なんてことはないよな?
0609デフォルトの名無しさん
垢版 |
2019/10/31(木) 19:55:25.18ID:IHVIFECG
cl4py で ~/.roswell/local-projects のパッケージ読む方法がわからないです
内部的には sbcl --script をpythonから実行しているので,
これと同じことを ros runでできれば良いはず
0610デフォルトの名無しさん
垢版 |
2019/11/04(月) 19:09:58.20ID:BHJXlzaa
~/.roswell/local-projects
~/.quicklisp/local-projects
~/quicklisp/local-projects

全部統一したい.おすすめの設定はありませんでしょうか?
0611デフォルトの名無しさん
垢版 |
2019/11/05(火) 15:20:02.48ID:mbkTm92O
ln -s
0612デフォルトの名無しさん
垢版 |
2019/11/14(木) 08:00:53.12ID:XNLPU+DY
Dex:get でURL エンコードは自分で変換するしかないのでしょうか
http postでHmacなる暗号化かけてpostする方法がわかりまでん
0613デフォルトの名無しさん
垢版 |
2019/11/14(木) 16:41:31.82ID:ot2dc8Ah
https://quickref.common-lisp.net/index-per-library.html
ここに沢山あるパッケージは,名前から中身を類推するしかないの?
このパッケージはテキスト処理で,数値計算でみたいなカテゴリー分類が見たい
0616デフォルトの名無しさん
垢版 |
2019/11/15(金) 13:23:21.62ID:76R0IrhI
あなる
0617デフォルトの名無しさん
垢版 |
2019/11/15(金) 22:00:06.65ID:EU/v6jRR
実践CLが適価で出ていたので次に読もうということでポチりました
それを引き取りに行きましたところ
ふらーっと棚を見たらPAIPとLOLとガウディ本が適価で置いてありやがりまして
全部いっちゃいました><
まだGentle Guideの最初の方読んでるところだとういうのに…どうすんだこれ
0621デフォルトの名無しさん
垢版 |
2019/11/16(土) 00:45:08.22ID:ITuC7LSd
>>620
なんだこれw
こんなものが有ったのか
これを最後までこなせばマジでLispマスターかもな
知らんけどw
0622デフォルトの名無しさん
垢版 |
2019/11/17(日) 00:11:27.35ID:Rg5NJh7n
オレがLispマスターになるために、誰かHyperspecを読みやすい日本語に翻訳してくれませんか
0623デフォルトの名無しさん
垢版 |
2019/11/17(日) 09:59:42.64ID:X9AhIAwA
はじめてなら先に Erlang やれ
Elixir じゃなくて Erlang な
0626デフォルトの名無しさん
垢版 |
2019/11/23(土) 12:12:31.12ID:9GE+Zi9m
>>601
基本はイミュータブルって事にしておいて、書き換えなきゃならなくなった時は
都度ミュータブルに変更(≒実際にはミュータブルに見える)とかは無し?
0627626
垢版 |
2019/11/23(土) 12:16:52.71ID:9GE+Zi9m
コピーオンライトっていうもっと簡単な用語があった
orz
0631デフォルトの名無しさん
垢版 |
2020/02/13(木) 16:16:45.93ID:Zcn6rtH0
quicklispの動作確認のためのhollow worldしかない単純なパッケージってないのでしょうか?
0633デフォルトの名無しさん
垢版 |
2020/02/20(木) 15:29:37.90ID:TfLGY2HC
>>631
「動作確認」が何を意味するのか微妙だけど・・
Quicklisp client が入っているかどうかだけなら、REPL で

(ql:client-version)

とか打って "2019-02-16" とか返ってくるのかを見ればよさそう。
0634デフォルトの名無しさん
垢版 |
2020/02/23(日) 16:33:42.33ID:rMYt9Lfm
Pattern matchで一番使われているのはoptimaなんです?
速度なくて良いので、もっと実装が単純なの探してます


それからquicklispにonlispのコードまとまってるパッケージないですか
0635デフォルトの名無しさん
垢版 |
2020/02/23(日) 18:30:00.29ID:ZlpvVH2U
実装が単純ってのを基準にライブラリ選定するやついるか?
quicklispに教材は集積されてないんじゃないの.知らんけど
0636デフォルトの名無しさん
垢版 |
2020/02/23(日) 19:56:19.38ID:buSGB+sr
コモンリスプの最初の教科書として『これがLispだ』を読み始めた
最初の方で、読み進むためのツールとして「pp」というマクロが紹介されてるんだけど
SBCLで動かなくて困ってます
2バージョン紹介されてるんだけど、どこをどうしたら動きますか?

CL-USER> (defmacro pp (fun)
(list 'pprint
(list 'quote (append (list 'defun fun)
(cdr (symbol-function fun))))))
CL-USER> (defmacro pp (fun)
(list 'quote (list 'defun fun
(cadr (symbol-function fun))
(caddr (caddr (symbol-function fun))))))

ワーニングのメッセージもコピペしたほうが良いですか?
0638デフォルトの名無しさん
垢版 |
2020/02/24(月) 00:14:28.43ID:ADNywXxE
Macro expandの結果がslimeだと
#1=
みたいのなくて、全部代入されて展開されるのに
コマンドラインからだと、ところどころ出てくる

この代入みたいなの出てこないような設定出来ないのでしょうか
0639デフォルトの名無しさん
垢版 |
2020/02/25(火) 02:41:22.28ID:7uXswvK3
>>636
ここを
(symbol-function fun)
こうすると動きます
(function-lambda-expression (symbol-function fun))
0642デフォルトの名無しさん
垢版 |
2020/02/26(水) 15:29:30.05ID:DHrVhTjk
…動いたは動いたけど、目的の動作ではないような…
関数定義のプリティプリントをするマクロなんですが…
0643デフォルトの名無しさん
垢版 |
2020/02/26(水) 22:35:08.55ID:hFQlDZVm
>>642
残念ながら、必ずしも function-lambda-expression で「関数定義」を得られるとは限りません。
nil を返す場合もあると言語仕様で定められています:

> The primary value, lambda-expression, is function's defining lambda expression, or nil if the information is not available.
http://www.lispworks.com/documentation/HyperSpec/Body/f_fn_lam.htm

SBCLの場合、ユーザー定義関数なら期待する結果になるようですが、
組込関数に対しては nil を返す実装がほとんどのようです(手元の処理系はすべて nil を返してきました)。
0645デフォルトの名無しさん
垢版 |
2020/03/05(木) 03:14:59.23ID:2Ey3ZIKM
httpクライアントはdexが一番メジャーなの?
0646デフォルトの名無しさん
垢版 |
2020/03/05(木) 21:05:07.28ID:h922Dn8C
>>529
ループで書くと変数への再代入が必要になるから〜
って関数型言語推しの文脈でよく言うけど
それが言うほど問題になる場面ってどれ位あるかね?

それにRubyのeachとかイテレータだと
ループ変数は隠蔽されててあまり使わないし
ますますそんな実害はない気がしてくる
0647デフォルトの名無しさん
垢版 |
2020/03/05(木) 21:08:11.89ID:h922Dn8C
>>542
Lispのプログラム自体もリストでしかないから
処理とデータの区別が必要なくて
メタプログラミングがしやすいって理屈は分かってる

問題はメタプロの生産性が本当にメチャクチャ高いかどうか?
Lisp信者(というか教祖の)ポールグレアムとかはそう言ってるけど
ライブラリやドキュメントの充実の方が生産性上げる気がしてる
0648デフォルトの名無しさん
垢版 |
2020/03/05(木) 21:09:30.43ID:h922Dn8C
>>545
そうすると行数が増えるのがイヤなんだろうと思う
最後にカッコが重なるのはオレもイヤだが
0649デフォルトの名無しさん
垢版 |
2020/03/05(木) 21:12:16.28ID:h922Dn8C
>>576
今どきもう処理速度より
人間が読み書きする速度の方が重要だろ?
でそれはPythonの方が早そうな気がするけど
0650デフォルトの名無しさん
垢版 |
2020/03/05(木) 21:14:22.56ID:h922Dn8C
>>583
>>587
Emacsってフリーソフトの草分けじゃん?
エディタだけどIDEに近いんじゃないの?
欲しい機能はLispで自力実装するになるけど
0653デフォルトの名無しさん
垢版 |
2020/03/05(木) 23:47:34.83ID:5jJ4qXDk
>>647

> ライブラリやドキュメントの充実の方が生産性上げる気がしてる

ドンキ行けばなんでも売ってるから買えば済むけどそれは生産性高いのか
ドキュメントの充実とかいうのも所詮Qiitaにコピペできる手順が書いてあるかどうかだろ

> 問題はメタプロの生産性が本当にメチャクチャ高いかどうか?

最近のわかりやすい事例でいうとライブラリやドキュメントが充実してないような量子コンピューティングでlisp使われてるわな
d-waveやrigetti
ゼロスタートでの生産性高いから採用されてんじゃないの
昔からlispはそういうところで使われてきたんだよな
0654デフォルトの名無しさん
垢版 |
2020/03/07(土) 03:25:56.46ID:XQNdi0wU
(list 1 2 3) = '( 1 2 3) ?
0655デフォルトの名無しさん
垢版 |
2020/03/07(土) 08:36:38.96ID:meF2wfp3
>>653
>ドンキ行けばなんでも売ってるから
>買えば済むけどそれは生産性高いのか

どうでもいいけど
PHPってドンキみたいな雰囲気だよな
0657デフォルトの名無しさん
垢版 |
2020/03/11(水) 22:30:07.23ID:XKsESyyO
>>656
?の意味わ?
0658デフォルトの名無しさん
垢版 |
2020/03/17(火) 18:02:01.30ID:StMMVjQO
実践common lispの古本買ったのですが
LispBox落としてきて本に載ってるEmacs?Slime?わかんないけどショートカットキー試したら
ほとんど通らなくて絶望してる

前の持ち主はそこまででこの本捨てたみたい
(ここまではラインマーカーあり、手あと付きまくりで汚れてる
水滴の落ちた跡があるけど、泣いたのかもしれない)
0659デフォルトの名無しさん
垢版 |
2020/03/17(火) 18:21:44.91ID:XIub247n
なるほど
C言語の本でもポインタの説明が間違ってて詰むパターンか
0661デフォルトの名無しさん
垢版 |
2020/03/17(火) 21:41:37.12ID:v8kclrng
ポインタの話を出して「それに比べたらお前の絶望なんて大したこと無い」ってか
Cはドメジャー言語、Lispはマイナー言語だぞ
0662デフォルトの名無しさん
垢版 |
2020/03/17(火) 21:59:51.74ID:lqRJWXI0
実践common lispってそんなHow To本だったっけ?pathnameのはなしをよんでうげっとなったような記憶が。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況