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/
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のはなしをよんでうげっとなったような記憶が。
0663◆QZaw55cn4c
垢版 |
2020/03/17(火) 21:59:55.51ID:1bTOUrPD
>>661
lisp はマイナーなんかじゃなく、神話ですよ
0664デフォルトの名無しさん
垢版 |
2020/03/17(火) 22:03:05.74ID:v8kclrng
読者も書籍も少ないという意味では同じ意味だろアスペ野郎
0665デフォルトの名無しさん
垢版 |
2020/03/17(火) 23:19:20.47ID:lLOB6fa+
lisp初心者とプログラミング初心者のどっちなんだってやつ多いよな
pythonおすすめ
0666デフォルトの名無しさん
垢版 |
2020/03/18(水) 07:25:29.43ID:HGjE4cJ6
冒頭Emacsの使い方から書いてある、環境も提供してる
hello worldから書いてある
プログラミング初心者が手を出しても全くおかしくない本だと思うけどね
0667デフォルトの名無しさん
垢版 |
2020/03/18(水) 08:27:48.33ID:e34uYQaF
LispBoxですが

カッコ全閉じ C-c C-q → undefined
関数コンパイル C-c C-c → [Condition of type SIMPLE-ERROR]
→戻るとリターンで評価が効かなくなってる
関数コンパイル M-x slime-compile-defun → 通る

どうすれば?
0668デフォルトの名無しさん
垢版 |
2020/03/18(水) 10:11:26.98ID:i4GVxo4Z
>>666
全くの初心者でも無いです
大学ではEmacsでレポートを書いていたし、Schemeの本も読みました
再帰は多少慣れています
0669デフォルトの名無しさん
垢版 |
2020/03/18(水) 11:01:54.67ID:YWqpfRsi
>>667
C-c C-c で slime-compile-defun は lisp-mode での割り当てです。
*slime-repl* バッファでは slime-interrupt が C-c C-c に割り当てられています。

C-c C-q は大分前になくなったようです。
今はカッコ全閉じは C-c C-]
これも lisp-mode での割り当てで、*slime-repl* バッファでは使えません。
もちろん設定すれば別ですが:

;; SLIMEのREPLバッファでも C-c C-] でカッコ全閉じ
(eval-after-load "slime-repl"
`(define-key slime-repl-mode-map (kbd "C-c C-]")
#'slime-close-all-parens-in-sexp))
0670デフォルトの名無しさん
垢版 |
2020/03/18(水) 11:04:51.07ID:YWqpfRsi
なおREPLでは Ctrl+Enter で「カッコ全閉じして評価」ができます:

CL-USER> (list(list(list ;ここで Ctrl+Enter すると

CL-USER> (list(list(list)))
((NIL))
CL-USER>
0672デフォルトの名無しさん
垢版 |
2020/03/18(水) 11:39:38.76ID:i4GVxo4Z
Lisp Cabinetも入れててこっちはslime2009-10-15でちょっと古いのか
*slime-repl sbcl*でC-c C-]が未定義と言われます
0673デフォルトの名無しさん
垢版 |
2020/03/18(水) 13:08:33.20ID:c+xBBuM1
>>672

>>669 の言う通り、 *slime-repl sbcl* では C-c C-] は定義されておらず、使いたければ 669 と同じ手当てがいる。

SLIME 2.24 (May 2019) でも slime-repl には C-c C-] は定義されていないみたい。
.lisp ファイルを開いた時の slime-mode には定義されてるけど。
0674デフォルトの名無しさん
垢版 |
2020/03/18(水) 14:08:10.88ID:YWqpfRsi
>>669の「設定」はいったん忘れてください。
lispboxはemacsのユーザー設定を読込むようになっていないので意味のない提案でした。

とにかく、拡張子が .lisp のファイルを作ってそこで試してみて。
そこでなら C-c C-] も C-c C-c も使えるはずです。
0676デフォルトの名無しさん
垢版 |
2020/03/20(金) 18:05:58.17ID:X6A/hsgw
実践common lispは序章に common lisp に興味があるすべての人に向けたもの とは書いてあるがプログラミング初心者にも向くとは書いてない
python,java 他の言語と比較した解説が多い
ターゲットは lisp に興味のあるプログラマだろ
0678デフォルトの名無しさん
垢版 |
2020/03/21(土) 07:40:12.04ID:5WNgmSYJ
実践は少なくとも10年前は本の通りそのまま動いたよ
前提としてる環境は2005年の環境な
翻訳は2008年らしいがとっくに絶版らしい

lispboxの代替品はいまならportacleだろうな https://portacle.github.io
0681デフォルトの名無しさん
垢版 |
2020/03/21(土) 18:21:48.79ID:lNZ58Hb9
HDD買ってきてlinux入れるしかないかなぁ
どうせならlibreboot化してみっかなCL関係ないけど
0689デフォルトの名無しさん
垢版 |
2020/09/04(金) 00:51:07.26ID:2/DOh4aN
 思う所あって、とりあえず入門しようう・・・と

ttp://www.nct9.ne.jp/m_hiroi/clisp/index.html

 ここ見ながらSBCLをWindowsに入れて始めました。
 ・・・うん、流石に数日で制覇は無理だし、当分はリファレンス見ながらじゃないと文法は頭に入らないかな。
 ただもっと疑問なのは・・・私はインタプリタがBASIC以来で30年ばかりブランクあるのだけど、LISTやNEWやRENUMみたいなインタプリタへの命令ってどうなってるんでしょ。
 定義した関数は実行できるけどコードはもう見れないなんてコトないよね。変数は確認できるけど。

 ググって他の入門テキスト当たっても特に記述がないってのはどういうコトなんだ・・・かろうじてLOADがあった程度とか。
 見落としてるのかな。
0690デフォルトの名無しさん
垢版 |
2020/09/05(土) 14:10:39.36ID:Cjkr8hQ1
以下のエラー、対処法わかりますか?
$ ros install cxxxr/lem
すると、

Installing from github cxxxr/lem
To load "lem":
Load 1 ASDF system:
lem
; Loading "lem"
....................[1/3] System 'lem' found. Loading the system..
;
; caught ERROR:
; READ error during COMPILE-FILE:
;
; The symbol "LOAD-ASD" is not external in the ASDF/INTERFACE package.
;
; Line: 62, Column: 20, File-Position: 2356
;
; Stream: #<SB-INT:FORM-TRACKING-STREAM

などとなり、インストールできません.
分かる人いますでしょうか。
MacOS Catalina 10.15.6
0691デフォルトの名無しさん
垢版 |
2020/09/05(土) 14:27:23.90ID:D6IgUwp/
The symbol "LOAD-ASD" is not external in the ASDF/INTERFACE package.
0692デフォルトの名無しさん
垢版 |
2020/09/05(土) 22:32:24.15ID:dAk5cbFF
asdf よりも、日本人が作った、anyenv を使えないの?

漏れは、Windows 10, WSL, Ubuntu 18.04 で、
ruby 2.6.6, node 12.16.2 を入れた

anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える
0694デフォルトの名無しさん
垢版 |
2020/09/06(日) 05:38:11.06ID:2WTO0asO
>>691
ありがとうございます。
次の段階に移りました。
下のように UIOP/OS:~ ばかりがillegal function callとなります。
どうしたら良いでしょうか?

Making core for Roswell...
building dump:/Users/user/.roswell/impls/x86-64/darwin/sbcl-bin/1.2.11/dump/lem-ncurses.core

; file: /Users/user/.roswell/lisp/quicklisp/dists/quicklisp/software/cffi_0.23.0/toolchain/bundle.lisp
; in: DEFUN BUNDLE-PATHNAME-TYPE
; ((UIOP/OS:OS-UNIX-P) "o")
;
; caught ERROR:
; illegal function call

; ((UIOP/OS:OS-WINDOWS-P)
; (IF (UIOP/OS:FEATUREP '(:OR :MINGW32 :MINGW64))
; "o"
; "obj"))
;
; caught ERROR:
; illegal function call

; ((UIOP/OS:OS-UNIX-P) "a")
;
; caught ERROR:
; illegal function call
0695692
垢版 |
2020/09/06(日) 07:12:16.75ID:rmQ2DAlK
anyenv install --list
と入力すると、Lisp には対応してなさそう。すまんかった

Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, luaenv, nodenv
phpenv, plenv, pyenv, rbenv, sbtenv
scalaenv, swiftenv, tfenv
0696デフォルトの名無しさん
垢版 |
2020/09/08(火) 08:07:17.84ID:+pvHuz8t
lemはしょっちゅう壊れるから開発に参加できるくらいのスキルないと常用はむり
エディタの拡張書いてもAPIの変更ですぐ動かなくなるからエディタ好き以外には時間の無駄
0697デフォルトの名無しさん
垢版 |
2020/11/04(水) 21:31:17.19ID:9sV4Q56c
質問失礼します
LISPでLinux向けのDAWアプリケーション(seq24のような)小規模なものが作りたいのですが, SchemeとCommonLISPの選択だと後者で間違えないでしょうか?

また音系ライブラリの充実度とかも教えていただければ助かります
環境はdebianのsidにemacsとroswellです。
0698デフォルトの名無しさん
垢版 |
2020/11/05(木) 15:01:20.13ID:B9BQMK/O
puredate使った方がいいでない?tcp/udpも使えるし、lispでサーバ書けばいいんじゃない
0700デフォルトの名無しさん
垢版 |
2020/11/14(土) 11:02:53.04ID:7fHOS6NH
道はnilを生ず、nilはアトムを生じ、アトムはS式を生じ、S式は万物を生ず。なるズルい帯に釣られて初めてLISP買っちまった
初めての人に向けた宣伝文…?
0701デフォルトの名無しさん
垢版 |
2020/11/17(火) 01:07:55.57ID:k3t+4yVm
map族で遊んで楽しんでるけどmapconだけ名前が変なの気になって仕方ないたすけて
対応するcar版のmapcanのnはnconcでわかるけどじゃあなんでmapcdnじゃないんだ
■ このスレッドは過去ログ倉庫に格納されています

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