X



【入門】Common Lisp その12【質問よろず】
0001デフォルトの名無しさん
2021/06/29(火) 12:35:01.10ID:aO3q0Gho
Lisp Schemeスレでは恥ずかしくて聞けないようなことを質問したり、
Lisp Schemeスレの話題は高度すぎて気後れする人が話しあったり。
それ以外でもCommon Lispについての話題なら歓迎します。

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

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

■前スレ
【入門】Common Lisp その11【質問よろず】
https://mevius.5ch.net/test/read.cgi/tech/1411307361/
【入門】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/
0007デフォルトの名無しさん
2021/07/02(金) 22:43:08.42ID:VlYkPpmP
関数の定義をREPLから呼び出すことはできないのかな?
つまりソースを返すということだけど
それともコンパイルされてバイナリが保持されるからそういう機能はそもそも無い?
0008デフォルトの名無しさん
2021/07/03(土) 03:15:19.11ID:5m5WWun6
できるシステムとできないシステムがあるよ
function-lambda-expressionがあるよ
できないシステムでも簡単に定義できるよ
やり方は教えないよ
0010デフォルトの名無しさん
2021/07/03(土) 12:21:12.15ID:L8iSoH00
教えないんじゃなくて知らないだけだろ
0011デフォルトの名無しさん
2021/07/03(土) 23:53:55.51ID:SsVGoP7c
普通にtagsファイル作ってるけど

;.init-common.lisp
(declaim (optimize (speed 0) (safety 3) (debug 3)))
(setf (fdefinition 'f2lam) (function fun...))
etc

;sbcl
(compile 'fdes);⇒FDES(副作用として定義置き換え、のはず)
(f2lam (fun fdes))
;defunされた時 (LAMBDA ..., T, FDES
;組み込み NIL, T CAR

こんな感じだったかと
安全取ってるからかもだけど
0012デフォルトの名無しさん
2021/07/04(日) 00:01:20.66ID:B+AVCUuE
init読まないでイメージ固めようとするとよくコケるのはご愛嬌

処理系のディレクトリに普通はソースあるはずだから、検索コマンドに指定しておくとよい(vimなら:find funでソースが開く)
0013デフォルトの名無しさん
2021/07/04(日) 00:08:40.22ID:B+AVCUuE
S式を実行時にフォームとして使いたいなら、クオートした状態で持っておいて、適宜functionでクロージャ化して使おう

replに居るときはぜひ欲しいから、fdefinition, function, macro-functionなんかでぜひ短くしておきたい子
0014デフォルトの名無しさん
2021/07/04(日) 00:27:46.75ID:S8kjsPD9
&wholeを掠め取ってdefunに渡すだけのdefun*でも定義しておけばコンパイル方式がminimumでもfurtherでも大丈夫だろう
plistにでもしまっておこう
symbol-functionにdefunがsetしてくれるし普通に呼べる
0015デフォルトの名無しさん
2021/07/04(日) 01:15:15.63ID:B+AVCUuE
sbclはランタイムある限りdescribeでソースの場所吐くね
#P"SYS:SRC;CODE;LIST.LISP"
のように
処理系、サード、自前でも任意のオブジェクトのパスを返す

ただし印字するだけで値で返してくれない、REPLから(ed *)でエディタに飛べたら便利なのに、惜しい…

(let ((*standard-output* (make-output-stream))
(describe 'funname)
(get-output-string-stream))

でとりあえずキャプチャはできそうだから、成形する関数をde/strと定義しておき

(ed (de/str 'fun))

で快適にREPLから読めると思います
(*ed-functions*の設定もよしなに)
0016デフォルトの名無しさん
2021/07/04(日) 01:17:22.55ID:B+AVCUuE
訂正
(get-output-string)→(get-output-string *standard-output*)
です、年のため
0018デフォルトの名無しさん
2021/07/04(日) 01:44:00.62ID:OmnpCZ06
自作するのであれば5chの書き込みは鵜呑みにしないでslimeのソースコードを参考にするようにしてね
0019デフォルトの名無しさん
2021/07/04(日) 02:06:58.99ID:lr3qaFF0
印字されるならdescribeのソースでパス取得関数を呼んでるだろうし、非公開でも::で呼んじゃえば
文字列から拾う時点でもう十分行儀が悪いんだし
0020デフォルトの名無しさん
2021/07/04(日) 13:30:03.34ID:mhtKNh0C
>>7
これは関数定義の位置に飛びたいだけなの?
それとも式そのものが欲しいの?
0027デフォルトの名無しさん
2021/10/05(火) 13:44:11.43ID:Vzh0q/ov
こっそり仕様に入ってるedはrepl生活を快適にしてくれるね>>15
まあAPIすらも一切処理系規定丸投げなんで癖が強いが
0029デフォルトの名無しさん
2021/11/21(日) 13:34:09.33ID:jaLnBo1K
このキャラの名前う教えてください

https://i.imgur.com/CS8HihA.jpg
0033デフォルトの名無しさん
2022/05/17(火) 08:53:37.42ID:BM/ftdBw
Twitter スクレイパーが古すぎてpython のをffi
最初からpython 使った方がよかった
0034デフォルトの名無しさん
2022/06/30(木) 22:14:37.74ID:kDQKlM4k
Common Lispと関数型プログラミングの基礎 Kindle版
山田 新之介 (著)

自称引きこもり
こんなの多そうだよな
いやなかなかすごい本やで
0035デフォルトの名無しさん
2022/07/01(金) 12:55:25.46ID:E4g9fmIG
最近思うのだけど昔は作者の知的構造がそのままサイト構造になっているような、「すごい素人」が作ったウェブサイトがあったでしょ。
ジオシティーズにあったような。
ブログとかqiitaみたいなサイトは画一的すぎて同じような知のかたまり具合にはならないと思うんだけど、意外とkindle出版がそれを担ってくれるような気がしてきた。
スレ違いすまん。
0036デフォルトの名無しさん
2023/01/20(金) 12:44:15.73ID:jpIFaaML
sbclからwxWidgetsを使おうと思ったらインターフェース自分で書かないとダメ?
GUIは何が主流なんだろう
まさかtcl/tkとかgtkとかはないよね
0039デフォルトの名無しさん
2023/01/23(月) 16:34:14.80ID:+5LdkDeD
ChatGPTに聞いてみた

Q.
GUIアプリを作成するためのCommonLispのライブラリ、フレームワークを教えて

A.
Common Lispには、GUIアプリケーションを作成するためのいくつかのライブラリやフレームワークがあります。

【Common Lisp Interface Manager (CLIM)】
CLIMは、Common Lisp用のインターフェイス管理システムであり、
Common Lispにおいて多くのGUIアプリケーションを作成するために使用されます。

【LispWorks CAPI】
LispWorks CAPIは、Common Lisp用のインターフェイス管理システムであり、
Windows、macOS、Linuxなどの多くのプラットフォームで使用できます。

【Gtk】
Gtkは、C言語用のGUIツールキットであり、Common LispからGtkを利用するために、
GTK+ binding for Common Lisp (cl-gtk2) や GTK+ for Common Lisp (gtkcl) のようなライブラリを使用することができます。

【Qt】
Qtは、C++用のクロスプラットフォームなGUIアプリケーションフレームワークであり、
Common LispからQtを利用するために、Qt bindings for Common Lisp (cl-qt) のようなライブラリを使用することができます。

どのライブラリやフレームワークを選ぶかは、アプリケーションの要件や開発者のスキルによって異なります。
0043デフォルトの名無しさん
2023/01/28(土) 14:49:12.14ID:3q8eIZmq
>>40
ハイライト入ってすっきり読みやすそうなインターフェイスでブクマした
と思ったらまだまだ未完か

この例文の後で次のような関数帝があったとします。
(defun example (x) ...)

さすがに"関数帝"は機械翻訳で出て来ないと思うから、手で頑張ってるんだろうけど
定番訳も未だ無いし、頑張ってくれると嬉しい
0044デフォルトの名無しさん
2023/01/28(土) 15:51:35.17ID:37IZJhnv
>>43
creative commonsでnptcl独自の説明書(日本語版)となってるから独自()なんじゃない
nptclの説明もあるけど、ざっと見た限り各項目の例はcltlそのままだから、当然底版はあるはず

ansiドラフトとされるほぼclhsな怪しい文書もpublic domainで出回ってるけど、ちゃんとclean-up issueまで付いてるのはclhsしか知らない
規格の意図を読み解くにはclean-up issueが必須だし、名前付書簡の体裁を取ってる以上は勝手に整理したり訳付けるのはまずい
少なくともエチケット的には
0045デフォルトの名無しさん
2023/01/28(土) 16:35:15.32ID:FcXwpIna
こんなやつかhttp://www.lispworks.com/documentation/lw61/CLHS/Issues/iss092_w.htm

clarificationの類は適当に引用して項目の本文に反映すれば便利だろうね
引用部分にリンク[hornig88]、フッターに出典を載せれば引用だから権利的な問題は無いはずだけど
lispworksの息の掛かってないissue集があれば教えて欲しい

自分用はclhsからcleanup issueのリンク先をたぐって内容を挿入、適当に読みやすく整形してプレーンテキストにダンプしたものをlessやlistener内から読んでる
0046デフォルトの名無しさん
2023/01/28(土) 16:46:36.89ID:3q8eIZmq
quicklispで探すと"各自用意した"clhsをオンザフライで検索整形表示するパッケージが山のように出てくるね
弄るのは難しいからか
0049デフォルトの名無しさん
2023/01/28(土) 17:58:49.46ID:3JYLVGY0
つーか著作権周りはちょっと気にし過ぎなきらいがあるね

cltl1のacknowledementsには80年から約3年ARPANET交わされた3000以上のメッセージにアイデアやデザインの寄与を帰して、それを叩き台にしてSteele先生が解釈吟味し、自筆でまとめたもの、とある
文書自体の権利はSteele先生(と出版社)

後年に成立した処理系マニュアルや規格やそれらに準ずる文書も、コード例はもとより平文までそのまま借りてる部分が多い

大元のSteele先生が気にしてないんだから、そんなに気にすんな
0050デフォルトの名無しさん
2023/04/11(火) 20:53:19.43ID:RMdXrgVw
Common Lisp (実際に試してるのはSBCLという処理系だけど) では
ソースファイル中でシンボルを前方参照すると未定義で警告が出ちゃうよね
相互再帰する2関数を定義しようとすると、どうしてもどちらかを前方参照
せざるを得なくて、こういう場合普通はどうしてるの?
オプションで処理系の警告を黙らせる?
前方参照する関数の存在だけをあらかじめ宣言する方法がある?
005350
2023/05/12(金) 17:17:24.90ID:5KRSokpw
>>51
どうもです。そうそう、求めてたのはそれ
型宣言できるのを知らなかったんよ
レスを投稿する


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