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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
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/
2020/03/17(火) 21:59:51.74ID:lqRJWXI0
実践common lispってそんなHow To本だったっけ?pathnameのはなしをよんでうげっとなったような記憶が。
2020/03/17(火) 21:59:55.51ID:1bTOUrPD
>>661
lisp はマイナーなんかじゃなく、神話ですよ
664デフォルトの名無しさん
垢版 |
2020/03/17(火) 22:03:05.74ID:v8kclrng
読者も書籍も少ないという意味では同じ意味だろアスペ野郎
2020/03/17(火) 23:19:20.47ID:lLOB6fa+
lisp初心者とプログラミング初心者のどっちなんだってやつ多いよな
pythonおすすめ
2020/03/18(水) 07:25:29.43ID:HGjE4cJ6
冒頭Emacsの使い方から書いてある、環境も提供してる
hello worldから書いてある
プログラミング初心者が手を出しても全くおかしくない本だと思うけどね
667デフォルトの名無しさん
垢版 |
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 → 通る

どうすれば?
668デフォルトの名無しさん
垢版 |
2020/03/18(水) 10:11:26.98ID:i4GVxo4Z
>>666
全くの初心者でも無いです
大学ではEmacsでレポートを書いていたし、Schemeの本も読みました
再帰は多少慣れています
669デフォルトの名無しさん
垢版 |
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))
670デフォルトの名無しさん
垢版 |
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>
2020/03/18(水) 11:32:38.80ID:i4GVxo4Z
>>669
ありがとうございます!
LispBoxが古いせいなのか、C-c C-cが未定義なんですよね
C-c C-]も未定義と叱られます
>>670は通って全閉じしてエンターしてくれます

Emacs 23.2.1です
ここから貰ってきたものです
https://common-lisp.net/project/lispbox/
2020/03/18(水) 11:39:38.76ID:i4GVxo4Z
Lisp Cabinetも入れててこっちはslime2009-10-15でちょっと古いのか
*slime-repl sbcl*でC-c C-]が未定義と言われます
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 には定義されてるけど。
674デフォルトの名無しさん
垢版 |
2020/03/18(水) 14:08:10.88ID:YWqpfRsi
>>669の「設定」はいったん忘れてください。
lispboxはemacsのユーザー設定を読込むようになっていないので意味のない提案でした。

とにかく、拡張子が .lisp のファイルを作ってそこで試してみて。
そこでなら C-c C-] も C-c C-c も使えるはずです。
2020/03/19(木) 01:34:16.75ID:kzb4sQto
閉じ括弧は自動入力に頼るべきだし、実際閉じ括弧を入力する事は皆無だ
2020/03/20(金) 18:05:58.17ID:X6A/hsgw
実践common lispは序章に common lisp に興味があるすべての人に向けたもの とは書いてあるがプログラミング初心者にも向くとは書いてない
python,java 他の言語と比較した解説が多い
ターゲットは lisp に興味のあるプログラマだろ
2020/03/20(金) 21:06:17.87ID:VDRHLCp0
だからって前提としてる環境で通らない事を書いてたら読者可哀相ではある
2020/03/21(土) 07:40:12.04ID:5WNgmSYJ
実践は少なくとも10年前は本の通りそのまま動いたよ
前提としてる環境は2005年の環境な
翻訳は2008年らしいがとっくに絶版らしい

lispboxの代替品はいまならportacleだろうな https://portacle.github.io
2020/03/21(土) 11:22:04.72ID:lNZ58Hb9
32bitのwin7ですのや…
2020/03/21(土) 11:41:58.56ID:fW5UJNuz
サバイバルなんとかって同人誌には導入の方法とか書いてないの?
2020/03/21(土) 18:21:48.79ID:lNZ58Hb9
HDD買ってきてlinux入れるしかないかなぁ
どうせならlibreboot化してみっかなCL関係ないけど
2020/03/23(月) 13:01:38.12ID:Anw2hEtg
Portacle 解説スライドとかあるのか
https://www.slideshare.net/masatoi0/portacle-common-lisp
2020/03/24(火) 21:26:46.71ID:G3YLWB5X
Lispworks買えばいいと思うよ。
2020/03/25(水) 01:50:52.61ID:/V276iPY
幾らぐらいするの?3万までなら考える
2020/03/25(水) 04:44:13.07ID:LMRkqywH
年間ライセンスで$1500から
2020/03/25(水) 04:45:11.18ID:LMRkqywH
64bit版は$3000からだったわ
2020/03/25(水) 09:45:21.75ID:L/38DGRQ
ハイパースペックの日本語版が付いてたら考える
2020/03/25(水) 22:37:29.70ID:SRZi3lVq
嘘書くなよ‥
ホビー向けlispworksは 64ビット版 750$ 32ビット版 500$
http://www.lispworks.com/buy/prices-1h.html
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があった程度とか。
 見落としてるのかな。
690デフォルトの名無しさん
垢版 |
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
691デフォルトの名無しさん
垢版 |
2020/09/05(土) 14:27:23.90ID:D6IgUwp/
The symbol "LOAD-ASD" is not external in the ASDF/INTERFACE package.
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 などを同じ使い方で、統一的に扱える
2020/09/05(土) 23:32:01.77ID:wplCbP8B
anyenvと比較されるのはroswellだと思うが
694デフォルトの名無しさん
垢版 |
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
695692
垢版 |
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
2020/09/08(火) 08:07:17.84ID:+pvHuz8t
lemはしょっちゅう壊れるから開発に参加できるくらいのスキルないと常用はむり
エディタの拡張書いてもAPIの変更ですぐ動かなくなるからエディタ好き以外には時間の無駄
697デフォルトの名無しさん
垢版 |
2020/11/04(水) 21:31:17.19ID:9sV4Q56c
質問失礼します
LISPでLinux向けのDAWアプリケーション(seq24のような)小規模なものが作りたいのですが, SchemeとCommonLISPの選択だと後者で間違えないでしょうか?

また音系ライブラリの充実度とかも教えていただければ助かります
環境はdebianのsidにemacsとroswellです。
2020/11/05(木) 15:01:20.13ID:B9BQMK/O
puredate使った方がいいでない?tcp/udpも使えるし、lispでサーバ書けばいいんじゃない
2020/11/05(木) 15:25:37.28ID:B9BQMK/O
筋違いなこと書いたは忘れて
2020/11/14(土) 11:02:53.04ID:7fHOS6NH
道はnilを生ず、nilはアトムを生じ、アトムはS式を生じ、S式は万物を生ず。なるズルい帯に釣られて初めてLISP買っちまった
初めての人に向けた宣伝文…?
2020/11/17(火) 01:07:55.57ID:k3t+4yVm
map族で遊んで楽しんでるけどmapconだけ名前が変なの気になって仕方ないたすけて
対応するcar版のmapcanのnはnconcでわかるけどじゃあなんでmapcdnじゃないんだ
702デフォルトの名無しさん
垢版 |
2020/11/17(火) 18:02:14.18ID:p11aQciX
漠然と concatenate の con かなーと思ってた
じゃあ can は何だよってなるけど
2020/11/17(火) 19:37:22.55ID:j2x0ZSt2
あ、それでいいかありがとう
map CAr N-conc → mapcan
map cdr n-CONc → mapcon
腑に落ちた
2020/11/21(土) 16:35:59.11ID:S5mOPbU/
多値をわざわざ実装する意味って何なんだろう?
truncate/remainderを一気に得られるのは確かに便利だけどさ
コンシング無しだからパフォーマンスが良い?

自分で書くときも(数個の、一様でない)リストを返すより、多値で返すのが良い習慣?
2020/11/22(日) 00:03:59.68ID:zjc8v2cC
入力と出力の対称性かな?
知らんけど
2020/11/22(日) 06:14:03.03ID:WGYXQsl7
基本的な意義は最適化への期待だね。
リストで書くより意図が伝わりやすいから、実際には使われない値の計算を省くとかしやすいかもしれない。

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


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

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


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

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

emacsはオモチャとしては惹かれるんだけど、正直vimの方が使いやすいごめん(ポールもvi派だし)
2020/11/25(水) 03:57:24.38ID:eHKzIqWP
guile採用してるのはそれなりにある
gimpやgnucashとか
2020/11/25(水) 05:23:23.30ID:gnG0Qzbx
ここcommon lispスレだよオレlisp話はlispスレでやれば
2020/11/25(水) 09:23:58.22ID:Eovv5MKD
こんな過疎スレにも警察が
2020/11/25(水) 10:50:31.91ID:m/dxKoiX
今時のcommon lispの開発環境はroswellとemacsをインストールすれば完了?
2020/11/25(水) 11:29:02.66ID:NHQccPME
Lispworks買えばおk
2020/11/25(水) 11:50:45.95ID:qa6Te+em
roswellは仮想環境作って真面目な開発&テストするならオススメ
clの処理系はオプション指定法がバラバラなのでそれもラップしてくれる
rcファイルもroswellが管理する

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

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

ふたりともthnks
2020/11/26(木) 15:02:52.37ID:tQ2i07w3
上の人ではないのだけれどLispworksでSLIMEみたいに関数の仮引数をミニバッファに表示させることはできますか?
2020/11/26(木) 15:07:35.61ID:9RIVN6I5
>>727
できるお
2020/11/26(木) 17:14:45.91ID:tQ2i07w3
どのようにすればできるのでしょうか
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
をロードしたら表示できましたありがとうございます。
2020/11/26(木) 19:18:00.22ID:eYZ/oymH
quickdocsのサービス終了してたんだけど代わりになるようなサイトできたの?
それとも純粋に終了しただけ?
2020/11/26(木) 19:35:40.66ID:9RIVN6I5
lw-add-ons
使うのもいいお
2020/11/26(木) 19:36:10.65ID:9RIVN6I5
>>732
Lispworksのはなしね
2020/11/26(木) 19:44:24.10ID:9RIVN6I5
ctrl+Shift+@
日本語キーボードなら。
2020/11/26(木) 19:51:18.89ID:tQ2i07w3
>>734
こっちのが見やすいしかっこいいですね、ありがとうございます。
2020/11/26(木) 19:51:29.13ID:9RIVN6I5
ctrl+`
だな
2020/11/26(木) 21:58:41.59ID:GUNaPZAO
>>731
情報がふるくなっていたので古い情報を掲載するなら閉鎖しろと文句をつけた方がおりましてそれをうけて情報を更新するのではなく閉鎖という経緯
文句をつけた方が責任をとるべく代りのサイトを構築中
2020/11/27(金) 07:47:10.66ID:uZfb8IM8
>>737
文句つけた奴がやらないパターンじゃないの…
739デフォルトの名無しさん
垢版 |
2020/12/01(火) 22:09:26.54ID:7sFPB0J6
>>737
>>731

ググれば見つかる。
初めて探したけどすぐ見つかった。
2020/12/01(火) 23:19:30.12ID:3q2HDqZy
貼れよ
2020/12/01(火) 23:56:36.13ID:GAF0pbTu
あれ一晩バッチ回せば更新できるみたいな感じじゃなかったんだ
742デフォルトの名無しさん
垢版 |
2020/12/05(土) 07:13:44.24ID:xYxBposk
質問です。
(ql:quickload :burgled-batteries)
としたら、
Unable to determine Python include directory.
といわれます。
どうしたら良いのですか?
2020/12/05(土) 19:42:21.09ID:9aa118rN
>>742
(ql:quickload :cl4py)
する
744デフォルトの名無しさん
垢版 |
2020/12/14(月) 17:59:11.95ID:R1A1Q73A
「Lispは数学そのものです」って言われてるけどどの辺が数学なのですか?
Lispを深く学べば分かる?
2020/12/14(月) 20:50:21.89ID:EKcwa4Mw
チャイティンが言ってそう。
2020/12/14(月) 20:56:25.02ID:87NGWabX
聞いたことないけど、関数型で文が全部式なとこかな
2020/12/14(月) 22:47:22.40ID:w+G2gx4f
ラムダ計算を元にしてるからだろうね
ただ関数型言語はみんなそうだけどね
2020/12/16(水) 13:57:03.43ID:4v/YyiUF
その手の謳い文句は(マクロや状態を考えなければ)文法が数学でモデル化しやすい程度にシンプル、意の事が多いとおもう
まあ数学程度で測れるほど本気のlispは浅くないから真に受けんな
2020/12/16(水) 16:54:05.29ID:ZPNjPXCu
>>748のlisp本出版に期待
750デフォルトの名無しさん
垢版 |
2020/12/24(木) 18:57:03.05ID:pBBvR81h
>>715

AutoLISPを知らない癖に偉そうな事を投稿して恥ずかしい無知だな。
https://en.wikipedia.org/wiki/AutoLISP
2020/12/24(木) 23:30:50.89ID:9noM35Vy
>>715
GIMPもLisp(Scheme)だな
ただ、他の言語も使えるけどね
2020/12/25(金) 23:52:52.13ID:eFBWMWd+
luaはかなり早い段階で商用ゲームに組み込まれて成功してるな
homeworldシリーズとか
なぜなのか
2020/12/26(土) 00:35:10.68ID:Ip/MnrvF
>>752
luaは配列が1から始まるってだけで組み込むのを拒否られた思い出が有る
2020/12/26(土) 08:42:12.14ID:1pHBrKBh
>>752
実行速度とサイズと単純さとコルーチン
2020/12/26(土) 16:34:04.29ID:wX3nlbuy
>>753
smalltalk以外で0オリジンじゃない言語あったんか…
756デフォルトの名無しさん
垢版 |
2020/12/26(土) 17:32:13.19ID:dAAAQq7y
Julia
2020/12/27(日) 00:53:46.18ID:dOR5xd2b
Commonlispよりもほかの言語が詳しいみなさん
2020/12/29(火) 09:19:59.20ID:IpOZccOp
>>753
んなアホな、Fortranに限らず科学計算界隈の慣習だろ、意識高い系に流行ってるJuliaも1ベース
2020/12/29(火) 09:22:42.46ID:IpOZccOp
>>757
言語ヲタしてると最終的にフリーダムなlispに行き着くのだよ
2020/12/29(火) 18:01:49.07ID:PE0cUsk/
>>758
ゲームに組み込むには、ゲーム自体がC(C++)で作られてるから、0ベースじゃないとワケわからなくなる
2020/12/30(水) 12:03:40.00ID:mB8dSyUZ
まあそれは仕方ないんでね
Fortranはデフォルトがそうなだけでインデックス範囲は負も含めて指定できるし好きにしたらいいよ
むしろcへ組み込む用途で問題なのはcと互換性のある型や呼び出し規約、メモリ配列使ってるかどうかだろ
clにcffiがあるように、Fortranもcと互換の型も使えるようになったし、cでは速度が足りない数値計算ライブラリの多くは比較的書きやすいcをグルー言語にするのが主流
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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