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/
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じゃないんだ
0702デフォルトの名無しさん
垢版 |
2020/11/17(火) 18:02:14.18ID:p11aQciX
漠然と concatenate の con かなーと思ってた
じゃあ can は何だよってなるけど
0703デフォルトの名無しさん
垢版 |
2020/11/17(火) 19:37:22.55ID:j2x0ZSt2
あ、それでいいかありがとう
map CAr N-conc → mapcan
map cdr n-CONc → mapcon
腑に落ちた
0704デフォルトの名無しさん
垢版 |
2020/11/21(土) 16:35:59.11ID:S5mOPbU/
多値をわざわざ実装する意味って何なんだろう?
truncate/remainderを一気に得られるのは確かに便利だけどさ
コンシング無しだからパフォーマンスが良い?

自分で書くときも(数個の、一様でない)リストを返すより、多値で返すのが良い習慣?
0706デフォルトの名無しさん
垢版 |
2020/11/22(日) 06:14:03.03ID:WGYXQsl7
基本的な意義は最適化への期待だね。
リストで書くより意図が伝わりやすいから、実際には使われない値の計算を省くとかしやすいかもしれない。

多値を普通の値として扱うと先頭要素が返るってのもある。
メインとオマケみたいな関係にある値を多値で返すと、メインの値へのアクセスには car とか通さなくていいとか。
一つの値だけを返してた関数を拡張するとき、多値なら互換性を壊さずに他の値も返せるとか。


ただ LISP はリスト処理が得意な言語だから、迷ったらリストを使う方向でいいと思う。
0707デフォルトの名無しさん
垢版 |
2020/11/23(月) 11:01:48.80ID://ZJMWym
なぜ未だにLispなのか?
Lispはメモリアクセスが演算と同じかむしろ早かったような時代に作られた言語。
キャッシュ付きのパイプライン方式のプロセッサとは相性が悪い。
メモリをポインターでたぐりまくるのでは性能が出ない。
また、スレッド並列化や分散並列化は難しいだろ?
0708デフォルトの名無しさん
垢版 |
2020/11/23(月) 11:37:20.81ID:Trrr2V1M
型付けまくって配列メインならcに並ぶパフォーマンス出るだろ
まああんまり使い過ぎるとlispっぽくなくてlispである意味なくなっちゃうんですけどね
0710デフォルトの名無しさん
垢版 |
2020/11/23(月) 13:36:57.00ID:Trrr2V1M
そもそもパフォーマンスの定義がlispでは難しい
極論を言えば環境に依らない計算は全てコンパイル時に済ますように(普通な見た目で)書けるし
他言語コンパイラにも定数畳み込みあるけどほんと微々たるもんだ

まあ、個々に良いとこ挙げても結局Lisp Is Syntactically Pureが全て
これがただ一つの本質
0711デフォルトの名無しさん
垢版 |
2020/11/23(月) 15:12:17.50ID:b5+ZYIc/
なぜlispなのか。そりは処理系がつくりやすいからでは。で、なぜForthではないんかと。
0713デフォルトの名無しさん
垢版 |
2020/11/24(火) 05:55:47.58ID:J3kRb2mj
構文解析がほぼ不要だから、簡単な LISP 処理系を書くってのは演習とかで見かけるけど…
それを目当てに言語を選ぶことってあんまりないと思う。


LISP の強みはマクロだよ。
リスト処理が得意な言語で、コードもリストとして書いてるから、メタプログラミングがやりやすい。
0714デフォルトの名無しさん
垢版 |
2020/11/24(火) 10:56:20.49ID:4gr82zpM
そうなん?Luaみたいにゲームのシナリオスクリプト記述用として需要があるのかと。
うちゲームじゃないけど使ってるよ
0715デフォルトの名無しさん
垢版 |
2020/11/25(水) 00:14:34.22ID:qDndbwAs
スクリプト用に LISP 組み込む形って、 Emacs くらいしか生き残ってないよね…
相性自体は悪くないはずなんだけど。

Lua とかのほうが手を出しやすいんだろうね。
0716デフォルトの名無しさん
垢版 |
2020/11/25(水) 01:05:02.44ID:qa6Te+em
ポータブルが取り柄、知っていればどんな環境でもlispにできる
(gcを考えない)lisp実装はワンライナーまであるし
慣れた関数マクロも使いたきゃ足りなきゃ実装例コピペすればいい
schemeはwebの仕様書に網羅的な実装例、clは…なんだろ
cltl2、特にappendixあたりか
おれはbackquoteの実装例が全くプリミティブじゃないのに驚いた
0717デフォルトの名無しさん
垢版 |
2020/11/25(水) 01:16:03.51ID:qa6Te+em
拡張言語にemacsみたいな生lispはちょっとなあ…
今更lispを勉強しようって人少ないだろうし、せめて()を隠蔽しないと

emacsはオモチャとしては惹かれるんだけど、正直vimの方が使いやすいごめん(ポールもvi派だし)
0723デフォルトの名無しさん
垢版 |
2020/11/25(水) 11:50:45.95ID:qa6Te+em
roswellは仮想環境作って真面目な開発&テストするならオススメ
clの処理系はオプション指定法がバラバラなのでそれもラップしてくれる
rcファイルもroswellが管理する

カジュアル用途ならオススメできない
ホーム直下の深い階層にバージョン違いの処理系やライブラリがバージョン毎にズラズラ
普及してるsbclとclispを生で普通に使えばよいよ
2種類rcファイル書くくらいなんでもない
0724723
垢版 |
2020/11/25(水) 13:43:13.28ID:oErTV+Ij
えっとつまり複雑なので初心者には何が何だか分からんくなるのがオチ、ということ
0726721
垢版 |
2020/11/25(水) 20:12:44.90ID:81nZxk7t
>>723
5年位離れてたわけで全くの初心者ではないんだ

>>722
完全な盲点だった、Personal Edition試してみる

ふたりともthnks
0727デフォルトの名無しさん
垢版 |
2020/11/26(木) 15:02:52.37ID:tQ2i07w3
上の人ではないのだけれどLispworksでSLIMEみたいに関数の仮引数をミニバッファに表示させることはできますか?
0730デフォルトの名無しさん
垢版 |
2020/11/26(木) 19:07:14.13ID:tQ2i07w3
C:\Program Files\LispWorks Personal\lib\7-1-0-0\examples\editor\commands\space-show-arglist.lisp
をロードしたら表示できましたありがとうございます。
0731デフォルトの名無しさん
垢版 |
2020/11/26(木) 19:18:00.22ID:eYZ/oymH
quickdocsのサービス終了してたんだけど代わりになるようなサイトできたの?
それとも純粋に終了しただけ?
0737デフォルトの名無しさん
垢版 |
2020/11/26(木) 21:58:41.59ID:GUNaPZAO
>>731
情報がふるくなっていたので古い情報を掲載するなら閉鎖しろと文句をつけた方がおりましてそれをうけて情報を更新するのではなく閉鎖という経緯
文句をつけた方が責任をとるべく代りのサイトを構築中
0739デフォルトの名無しさん
垢版 |
2020/12/01(火) 22:09:26.54ID:7sFPB0J6
>>737
>>731

ググれば見つかる。
初めて探したけどすぐ見つかった。
0742デフォルトの名無しさん
垢版 |
2020/12/05(土) 07:13:44.24ID:xYxBposk
質問です。
(ql:quickload :burgled-batteries)
としたら、
Unable to determine Python include directory.
といわれます。
どうしたら良いのですか?
0744デフォルトの名無しさん
垢版 |
2020/12/14(月) 17:59:11.95ID:R1A1Q73A
「Lispは数学そのものです」って言われてるけどどの辺が数学なのですか?
Lispを深く学べば分かる?
0747デフォルトの名無しさん
垢版 |
2020/12/14(月) 22:47:22.40ID:w+G2gx4f
ラムダ計算を元にしてるからだろうね
ただ関数型言語はみんなそうだけどね
0748デフォルトの名無しさん
垢版 |
2020/12/16(水) 13:57:03.43ID:4v/YyiUF
その手の謳い文句は(マクロや状態を考えなければ)文法が数学でモデル化しやすい程度にシンプル、意の事が多いとおもう
まあ数学程度で測れるほど本気のlispは浅くないから真に受けんな
■ このスレッドは過去ログ倉庫に格納されています

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