2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

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

1 :デフォルトの名無しさん:2021/06/29(火) 12:35:01.10 ID:aO3q0Gho.net
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/

5 :デフォルトの名無しさん:2021/06/29(火) 16:40:02.63 ID:aO3q0Gho.net
コードを書くコードを書きます

6 :デフォルトの名無しさん:2021/06/29(火) 22:07:20.07 ID:vAeooDjH.net
>>3
repl いじってればやる気出てくるよ
泥団子遊び

7 :デフォルトの名無しさん:2021/07/02(金) 22:43:08.42 ID:VlYkPpmP.net
関数の定義をREPLから呼び出すことはできないのかな?
つまりソースを返すということだけど
それともコンパイルされてバイナリが保持されるからそういう機能はそもそも無い?

8 :デフォルトの名無しさん:2021/07/03(土) 03:15:19.11 ID:5m5WWun6.net
できるシステムとできないシステムがあるよ
function-lambda-expressionがあるよ
できないシステムでも簡単に定義できるよ
やり方は教えないよ

9 :デフォルトの名無しさん:2021/07/03(土) 12:05:36.41 ID:GyqXK2AC.net
できらぁ!

10 :デフォルトの名無しさん:2021/07/03(土) 12:21:12.15 ID:L8iSoH00.net
教えないんじゃなくて知らないだけだろ

11 :デフォルトの名無しさん:2021/07/03(土) 23:53:55.51 ID:SsVGoP7c.net
普通に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

こんな感じだったかと
安全取ってるからかもだけど

12 :デフォルトの名無しさん:2021/07/04(日) 00:01:20.66 ID:B+AVCUuE.net
init読まないでイメージ固めようとするとよくコケるのはご愛嬌

処理系のディレクトリに普通はソースあるはずだから、検索コマンドに指定しておくとよい(vimなら:find funでソースが開く)

13 :デフォルトの名無しさん:2021/07/04(日) 00:08:40.22 ID:B+AVCUuE.net
S式を実行時にフォームとして使いたいなら、クオートした状態で持っておいて、適宜functionでクロージャ化して使おう

replに居るときはぜひ欲しいから、fdefinition, function, macro-functionなんかでぜひ短くしておきたい子

14 :デフォルトの名無しさん:2021/07/04(日) 00:27:46.75 ID:S8kjsPD9.net
&wholeを掠め取ってdefunに渡すだけのdefun*でも定義しておけばコンパイル方式がminimumでもfurtherでも大丈夫だろう
plistにでもしまっておこう
symbol-functionにdefunがsetしてくれるし普通に呼べる

15 :デフォルトの名無しさん:2021/07/04(日) 01:15:15.63 ID:B+AVCUuE.net
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*の設定もよしなに)

16 :デフォルトの名無しさん:2021/07/04(日) 01:17:22.55 ID:B+AVCUuE.net
訂正
(get-output-string)→(get-output-string *standard-output*)
です、年のため

17 :デフォルトの名無しさん:2021/07/04(日) 01:20:06.43 ID:B+AVCUuE.net
あっ、年だわ…

18 :デフォルトの名無しさん:2021/07/04(日) 01:44:00.62 ID:OmnpCZ06.net
自作するのであれば5chの書き込みは鵜呑みにしないでslimeのソースコードを参考にするようにしてね

19 :デフォルトの名無しさん:2021/07/04(日) 02:06:58.99 ID:lr3qaFF0.net
印字されるならdescribeのソースでパス取得関数を呼んでるだろうし、非公開でも::で呼んじゃえば
文字列から拾う時点でもう十分行儀が悪いんだし

20 :デフォルトの名無しさん:2021/07/04(日) 13:30:03.34 ID:mhtKNh0C.net
>>7
これは関数定義の位置に飛びたいだけなの?
それとも式そのものが欲しいの?

21 :デフォルトの名無しさん:2021/07/05(月) 12:36:08.10 ID:jAcgN4Sq.net
>>20
式が見れたら初心者の役に立つのかなと思った

22 :デフォルトの名無しさん:2021/07/11(日) 00:23:59.49 ID:NgMAIKLK.net
継続って何?
わかりやすく教えて。
おながいします。

23 :デフォルトの名無しさん:2021/07/11(日) 00:29:42.15 ID:MYeUDTC2.net
async/await

24 :デフォルトの名無しさん:2021/07/11(日) 00:33:27.98 ID:oSIafAjb.net
力なり

25 :デフォルトの名無しさん:2021/10/04(月) 22:50:37.58 ID:8YOTO5nw.net
ためらわないこと

26 :デフォルトの名無しさん:2021/10/05(火) 13:41:03.34 ID:Vzh0q/ov.net
過疎ってても俺は継続してるぞ

27 :デフォルトの名無しさん:2021/10/05(火) 13:44:11.43 ID:Vzh0q/ov.net
こっそり仕様に入ってるedはrepl生活を快適にしてくれるね>>15
まあAPIすらも一切処理系規定丸投げなんで癖が強いが

28 :デフォルトの名無しさん:2021/10/30(土) 16:19:55.49 ID:5ornt6U8.net
ningleでsession使いたい時はどうすればいいの?

29 :デフォルトの名無しさん:2021/11/21(日) 13:34:09.33 ID:jaLnBo1K.net
このキャラの名前う教えてください

https://i.imgur.com/CS8HihA.jpg

30 :デフォルトの名無しさん:2021/11/21(日) 14:16:32.02 ID:+FbyuW5V.net
lisp alienに名前はない

31 :デフォルトの名無しさん:2021/11/21(日) 15:37:24.92 ID:BwaLJwgU.net
plan9

32 :デフォルトの名無しさん:2022/04/01(金) 01:20:09.81 ID:oviorgC5.net
nil

33 :デフォルトの名無しさん:2022/05/17(火) 08:53:37.42 ID:BM/ftdBw.net
Twitter スクレイパーが古すぎてpython のをffi
最初からpython 使った方がよかった

34 :デフォルトの名無しさん:2022/06/30(木) 22:14:37 ID:kDQKlM4k.net
Common Lispと関数型プログラミングの基礎 Kindle版
山田 新之介 (著)

自称引きこもり
こんなの多そうだよな
いやなかなかすごい本やで

35 :デフォルトの名無しさん:2022/07/01(金) 12:55:25.46 ID:E4g9fmIG.net
最近思うのだけど昔は作者の知的構造がそのままサイト構造になっているような、「すごい素人」が作ったウェブサイトがあったでしょ。
ジオシティーズにあったような。
ブログとかqiitaみたいなサイトは画一的すぎて同じような知のかたまり具合にはならないと思うんだけど、意外とkindle出版がそれを担ってくれるような気がしてきた。
スレ違いすまん。

36 :デフォルトの名無しさん:2023/01/20(金) 12:44:15.73 ID:jpIFaaML.net
sbclからwxWidgetsを使おうと思ったらインターフェース自分で書かないとダメ?
GUIは何が主流なんだろう
まさかtcl/tkとかgtkとかはないよね

37 :デフォルトの名無しさん:2023/01/20(金) 13:51:50.40 ID:doaFIvzB.net
今ならCLOGでいいんじゃね

38 :デフォルトの名無しさん:2023/01/20(金) 23:49:38.13 ID:jpIFaaML.net
こんなのもあるんだ

39 :デフォルトの名無しさん:2023/01/23(月) 16:34:14.80 ID:+5LdkDeD.net
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) のようなライブラリを使用することができます。

どのライブラリやフレームワークを選ぶかは、アプリケーションの要件や開発者のスキルによって異なります。

40 :デフォルトの名無しさん:2023/01/27(金) 15:10:43.04 ID:tQPcev6b.net
nptcl
https://nptcl.github.io/npt-japanese/md/ansicl/index.html

41 :デフォルトの名無しさん:2023/01/27(金) 15:11:28.76 ID:tQPcev6b.net
こっちだった

nptcl
https://github.com/nptcl/npt

42 :デフォルトの名無しさん:2023/01/27(金) 16:44:24.15 ID:FadgVDkp.net
LTkがいいんじゃないか
使ったことないけど

43 :デフォルトの名無しさん:2023/01/28(土) 14:49:12.14 ID:3q8eIZmq.net
>>40
ハイライト入ってすっきり読みやすそうなインターフェイスでブクマした
と思ったらまだまだ未完か

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

さすがに"関数帝"は機械翻訳で出て来ないと思うから、手で頑張ってるんだろうけど
定番訳も未だ無いし、頑張ってくれると嬉しい

44 :デフォルトの名無しさん:2023/01/28(土) 15:51:35.17 ID:37IZJhnv.net
>>43
creative commonsでnptcl独自の説明書(日本語版)となってるから独自()なんじゃない
nptclの説明もあるけど、ざっと見た限り各項目の例はcltlそのままだから、当然底版はあるはず

ansiドラフトとされるほぼclhsな怪しい文書もpublic domainで出回ってるけど、ちゃんとclean-up issueまで付いてるのはclhsしか知らない
規格の意図を読み解くにはclean-up issueが必須だし、名前付書簡の体裁を取ってる以上は勝手に整理したり訳付けるのはまずい
少なくともエチケット的には

45 :デフォルトの名無しさん:2023/01/28(土) 16:35:15.32 ID:FcXwpIna.net
こんなやつかhttp://www.lispworks.com/documentation/lw61/CLHS/Issues/iss092_w.htm

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

自分用はclhsからcleanup issueのリンク先をたぐって内容を挿入、適当に読みやすく整形してプレーンテキストにダンプしたものをlessやlistener内から読んでる

46 :デフォルトの名無しさん:2023/01/28(土) 16:46:36.89 ID:3q8eIZmq.net
quicklispで探すと"各自用意した"clhsをオンザフライで検索整形表示するパッケージが山のように出てくるね
弄るのは難しいからか

47 :デフォルトの名無しさん:2023/01/28(土) 17:18:29.12 ID:SX+f6s8k.net
個人でやってることにあれこれケチつけるのはやめれ

48 :デフォルトの名無しさん:2023/01/28(土) 17:29:06.87 ID:3q8eIZmq.net
そうだね無粋だね、ごめん

49 :デフォルトの名無しさん:2023/01/28(土) 17:58:49.46 ID:3JYLVGY0.net
つーか著作権周りはちょっと気にし過ぎなきらいがあるね

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

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

大元のSteele先生が気にしてないんだから、そんなに気にすんな

50 :デフォルトの名無しさん:2023/04/11(火) 20:53:19.43 ID:RMdXrgVw.net
Common Lisp (実際に試してるのはSBCLという処理系だけど) では
ソースファイル中でシンボルを前方参照すると未定義で警告が出ちゃうよね
相互再帰する2関数を定義しようとすると、どうしてもどちらかを前方参照
せざるを得なくて、こういう場合普通はどうしてるの?
オプションで処理系の警告を黙らせる?
前方参照する関数の存在だけをあらかじめ宣言する方法がある?

51 :デフォルトの名無しさん:2023/05/09(火) 00:23:44.31 ID:Qe9GYp4b.net
(declaim (ftype (function () t) bar))
(defun foo () (bar))
ってこと?

52 :デフォルトの名無しさん:2023/05/12(金) 17:14:47.24 ID:5KRSokpw.net
>>51

53 :50:2023/05/12(金) 17:17:24.90 ID:5KRSokpw.net
>>51
どうもです。そうそう、求めてたのはそれ
型宣言できるのを知らなかったんよ

54 :デフォルトの名無しさん:2023/09/27(水) 01:20:27.65 ID:pktdQsFK.net
やったやった、最高の瞬間だね!

14 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★