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/
【入門】Common Lisp その11【質問よろず】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2014/09/21(日) 22:49:21.73ID:FJokPHUt483デフォルトの名無しさん
2017/05/19(金) 21:58:39.33ID:N5yG+fmp484デフォルトの名無しさん
2017/05/20(土) 00:30:38.53ID:ZKXptbMB >>480
どうしてマクロにしたの?初心者だから?
どうしてマクロにしたの?初心者だから?
485デフォルトの名無しさん
2017/05/20(土) 01:15:39.37ID:I6lRK30f >>484
関数の中で(eval `(defparameter ,変数 ,シンボル))とすると変数がありませんというエラーがでてきて
普通にdefparameterしようとしても変数定義はされないのでマクロでやるしかないと思いました。
(eval `(defparameter ,変数 ,文字列))だとうまくいきますね
関数の中で(eval `(defparameter ,変数 ,シンボル))とすると変数がありませんというエラーがでてきて
普通にdefparameterしようとしても変数定義はされないのでマクロでやるしかないと思いました。
(eval `(defparameter ,変数 ,文字列))だとうまくいきますね
486デフォルトの名無しさん
2017/05/20(土) 01:30:33.54ID:I6lRK30f 問題が解決できました evalはあまり使っちゃいけない的なことが言われてたと思うので
なんとなく気が引けてマクロを使っちゃった感じです 初心者の質問に付き合ってくださりありがとうございました!
なんとなく気が引けてマクロを使っちゃった感じです 初心者の質問に付き合ってくださりありがとうございました!
487デフォルトの名無しさん
2017/05/21(日) 06:36:36.81ID:oB72Q+Da OpenCVの超解像計算プログラムは
cpuとgpuで100倍近く速度に差があるよ
cpuとgpuで100倍近く速度に差があるよ
488デフォルトの名無しさん
2017/05/21(日) 06:50:43.54ID:oB72Q+Da typed racketみたいな型推論をcommon lispでする方法ないのでしょうか?
489デフォルトの名無しさん
2017/05/21(日) 19:45:11.09ID:jy5dosQP490デフォルトの名無しさん
2017/05/22(月) 06:10:33.21ID:Suxf7jk2 sbclのtheのdescribeに相当する機能がtyped racketだとreplからしか使えないような意地悪されてるのでcommon lispでもそうかと思った
491デフォルトの名無しさん
2017/05/22(月) 19:06:44.55ID:cqwt5c+d sbclのdescribeで
https://github.com/sbcl/sbcl/blob/master/src/code/describe.lisp
derived-typeの情報だけ取り出して他の変数に格納したいのに
うまくいかない
streamに文字列出力する関数だからstreamの文字を正規表現かなにかで切り分ける方が良いのだろうか
https://github.com/sbcl/sbcl/blob/master/src/code/describe.lisp
derived-typeの情報だけ取り出して他の変数に格納したいのに
うまくいかない
streamに文字列出力する関数だからstreamの文字を正規表現かなにかで切り分ける方が良いのだろうか
492デフォルトの名無しさん
2017/05/25(木) 21:17:35.11ID:1hi1bgKK493デフォルトの名無しさん
2017/05/31(水) 17:40:47.18ID:PPe5oyts Common lispでcのプログラムコード読み込んで
関数宣言一覧取り出して、ヘッダーファイル生成するような
パーサージェネレーターのサンプルコードどこかないでしょうか
c言語の解析するサンプルコードなら他のでも良いです
関数宣言一覧取り出して、ヘッダーファイル生成するような
パーサージェネレーターのサンプルコードどこかないでしょうか
c言語の解析するサンプルコードなら他のでも良いです
494デフォルトの名無しさん
2017/07/09(日) 02:25:04.88ID:ryDnV29I 誰か知っていれば教えてほしいのですが
LispWorks 7.0 のmacOS版って日本語表示や日本語入力問題なく
できるようになっていますか?
LispWorks 6.1 Personalを使っているのですが日本語入力すると??に文字が
変わってしまうみたいなので。
LispWorks 7.0 のmacOS版って日本語表示や日本語入力問題なく
できるようになっていますか?
LispWorks 6.1 Personalを使っているのですが日本語入力すると??に文字が
変わってしまうみたいなので。
495デフォルトの名無しさん
2017/11/08(水) 02:39:25.32ID:Uoqj8nW+ TEST
496デフォルトの名無しさん
2017/12/06(水) 00:55:26.32ID:eBsnaSfJ テスト
497デフォルトの名無しさん
2018/02/16(金) 05:55:09.54ID:W1XJdyx1 ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
498デフォルトの名無しさん
2018/05/23(水) 21:07:30.15ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
HSR58
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
HSR58
499sage
2018/06/08(金) 07:24:37.45ID:j+JfgiN4 ところでlabelsって関数の名前の由来って何?
しっくりこない
しっくりこない
500デフォルトの名無しさん
2018/06/17(日) 11:25:32.22ID:eEWfV0tw >>477
そもそもCLはインタプリタだからGPU使っても7倍程度しか速度出ないのは当たり前だろ。
そもそもCLはインタプリタだからGPU使っても7倍程度しか速度出ないのは当たり前だろ。
501デフォルトの名無しさん
2018/06/19(火) 02:22:17.89ID:q+1hh2rS >>500
clはコンパイラ言語だよ.仕様上インタプリタ実装も許容されているだけ
clはコンパイラ言語だよ.仕様上インタプリタ実装も許容されているだけ
502デフォルトの名無しさん
2018/07/04(水) 22:29:25.87ID:gFgZc5FG V3Z
503デフォルトの名無しさん
2018/07/05(木) 16:53:25.50ID:AeL6VB/V V3Z
504デフォルトの名無しさん
2018/07/13(金) 17:19:54.02ID:EPDxLdrK こないだ迄Windows10の64bit版ではDEPの絡みで動かないと思ってた、SBCL版のMaximaが、
今試してみたらあっさり動いてしまいました。
sf.netに置いてあったインストーラでインストールした直後はCLISP版しか駄目だった
筈なんですが…。
うちではWindows10 Homeを使ってますが、皆様の処ではどうでしょうか?
今試してみたらあっさり動いてしまいました。
sf.netに置いてあったインストーラでインストールした直後はCLISP版しか駄目だった
筈なんですが…。
うちではWindows10 Homeを使ってますが、皆様の処ではどうでしょうか?
505504
2018/07/13(金) 17:28:05.78ID:EPDxLdrK SBCL自体を別途インストールしたのが効いてるのかも知れないなぁ…。
506デフォルトの名無しさん
2018/09/11(火) 03:59:06.82ID:u3nXUIwD Lispってwebフレームワークありますか?
一通りの機能のあるブログを作ったり出来るような
一通りの機能のあるブログを作ったり出来るような
507デフォルトの名無しさん
2018/10/03(水) 18:50:06.50ID:1GTVcIse 質問です。
Lispで書かれたLisp処理系はありますか?
Lispで書かれたLisp処理系はありますか?
508デフォルトの名無しさん
2018/11/03(土) 15:30:34.57ID:3XdSQ+AZ 中学卒業までにコモンリスプ極める!
509デフォルトの名無しさん
2018/11/14(水) 08:37:19.93ID:gqSz/09F roswellについての質問なんですが
ros init ファイル名
としたときできるファイルの中身の
(progn ;;init forms
(ros:ensure-asdf)
;;#+quicklisp (ql:quickload '() :silent t)
)
って何ですか?
(ros:ensure-asdf)特にこれ
ros init ファイル名
としたときできるファイルの中身の
(progn ;;init forms
(ros:ensure-asdf)
;;#+quicklisp (ql:quickload '() :silent t)
)
って何ですか?
(ros:ensure-asdf)特にこれ
510デフォルトの名無しさん
2018/11/17(土) 00:21:41.91ID:eQWBxdMf >>509
そんな事俺に聞かれても知るわけないやろ頭おかしいんか?
そんな事俺に聞かれても知るわけないやろ頭おかしいんか?
511デフォルトの名無しさん
2018/12/02(日) 12:23:45.12ID:KPiqRYEn お前だれよ
512デフォルトの名無しさん
2019/01/08(火) 13:36:34.22ID:n4V6aMpj Common LispからC言語のモジュールを呼ぶ方法は簡単に見つかるのですが
C言語からCommon Lispプログラムを実行する方法が見つかりません。
GaucheならC言語からインタープリタを起動できるみたいなのですがCommonLispにはないのでしょうか?
C言語からCommon Lispプログラムを実行する方法が見つかりません。
GaucheならC言語からインタープリタを起動できるみたいなのですがCommonLispにはないのでしょうか?
513デフォルトの名無しさん
2019/01/08(火) 18:04:16.67ID:kGjsEUq7 >>512
ただ別プロセスで処理系を起こして、そこの repl で評価できればいい・・というだけなら、 fork と exec で済むかも。
CからLisp関数を直接呼んだり、C関数でLispオブジェクトを直接扱うとかするのは、がっつり処理系依存だけど出来ることは出来る。
たぶんこの目的なら ECL が一番簡単だと思う。それっぽい例もあるし:
https://gitlab.com/embeddable-common-lisp/ecl/tree/develop/examples/embed
SBCL や Allegro CL でも出来るみたいだけど、かなり大変。
というのも、C関数が動いてる間にLisp処理系のGCが走ると死ぬ・・とか諸々あるので。一応リンクだけ:
http://www.sbcl.org/manual/#Calling-Lisp-From-C
https://franz.com/support/documentation/10.1/doc/foreign-functions.htm#lisp-from-c-1
ただ別プロセスで処理系を起こして、そこの repl で評価できればいい・・というだけなら、 fork と exec で済むかも。
CからLisp関数を直接呼んだり、C関数でLispオブジェクトを直接扱うとかするのは、がっつり処理系依存だけど出来ることは出来る。
たぶんこの目的なら ECL が一番簡単だと思う。それっぽい例もあるし:
https://gitlab.com/embeddable-common-lisp/ecl/tree/develop/examples/embed
SBCL や Allegro CL でも出来るみたいだけど、かなり大変。
というのも、C関数が動いてる間にLisp処理系のGCが走ると死ぬ・・とか諸々あるので。一応リンクだけ:
http://www.sbcl.org/manual/#Calling-Lisp-From-C
https://franz.com/support/documentation/10.1/doc/foreign-functions.htm#lisp-from-c-1
514デフォルトの名無しさん
2019/01/13(日) 15:30:06.78ID:awaCdOlx Lispでグラフィカルにステップ実行できる方法ってEmacsでSLIMEやるしかないですか?
LispのためだけにEmacs覚えるのは勘弁してほしいので
VimでSlimv入れてやってみましたがGDBのようなステップ実行しか出来ませんでした。
LispのためだけにEmacs覚えるのは勘弁してほしいので
VimでSlimv入れてやってみましたがGDBのようなステップ実行しか出来ませんでした。
515デフォルトの名無しさん
2019/01/15(火) 05:34:30.77ID:lhwbzmDt >>514
「グラフィカルにステップ実行」が何をさすのかよく分からんが。
slime でも sldb で restart 選ぶ感じにはなっちゃうと思う。
https://lispcookbook.github.io/cl-cookbook/debugging.html#step
https://lisphub.jp/common-lisp/cookbook/index.cgi?SLIME%3ASLDB
「グラフィカルにステップ実行」が何をさすのかよく分からんが。
slime でも sldb で restart 選ぶ感じにはなっちゃうと思う。
https://lispcookbook.github.io/cl-cookbook/debugging.html#step
https://lisphub.jp/common-lisp/cookbook/index.cgi?SLIME%3ASLDB
516514
2019/01/15(火) 10:41:56.87ID:EvpJOxTU すみません、勘違いでした。
edebugのように現在実行している行がわかるステッパ?が利用したいのですが
edebug以外にないでしょうか?
edebugのように現在実行している行がわかるステッパ?が利用したいのですが
edebug以外にないでしょうか?
517デフォルトの名無しさん
2019/01/16(水) 01:39:36.94ID:Q19T/bZz >>514
「グラフィカルにステップ実行」と言ったらVisualStudioみたいな感じかと思うけど。
LispじゃなくてSchemeでもいいならRacketはどう?(ダメだよね ;_;)
かなり昔にDrSchemeって名前だった頃にちょっと遊んでみただけだけど。
https://docs.racket-lang.org/drracket/debugger.html
「グラフィカルにステップ実行」と言ったらVisualStudioみたいな感じかと思うけど。
LispじゃなくてSchemeでもいいならRacketはどう?(ダメだよね ;_;)
かなり昔にDrSchemeって名前だった頃にちょっと遊んでみただけだけど。
https://docs.racket-lang.org/drracket/debugger.html
518デフォルトの名無しさん
2019/01/17(木) 06:22:05.82ID:W9irOPq+ Lispでドルマークって特別な意味ありますかね?正規表現とかナシで
519デフォルトの名無しさん
2019/01/17(木) 15:24:46.14ID:XV1+qWbe Land of Lisp、文字が小さくて読めない…(´;ω;`)
520デフォルトの名無しさん
2019/01/17(木) 19:09:16.06ID:Y7dh6bUh >>519
⊃ハズキルーペ
⊃ハズキルーペ
521デフォルトの名無しさん
2019/01/18(金) 15:25:03.51ID:6FOWYZfc >>518
standard-syntax なら $ は普通の文字。
standard-syntax での各文字の意味はここにある:
http://www.lispworks.com/documentation/HyperSpec/Body/02_ad.htm#charsyntaxtypesinstdsyntax
readtable いじってたら分からない
standard-syntax なら $ は普通の文字。
standard-syntax での各文字の意味はここにある:
http://www.lispworks.com/documentation/HyperSpec/Body/02_ad.htm#charsyntaxtypesinstdsyntax
readtable いじってたら分からない
522デフォルトの名無しさん
2019/01/19(土) 14:06:18.02ID:xfMx41aW だれかChocorateyにRoswell追加してクレメンス
523デフォルトの名無しさん
2019/01/19(土) 23:31:04.73ID:xfMx41aW Windows版Roswellでinstallコマンド出来ている方はいますか?
sbcl-binのような末尾にbinがついて、ビルドが不要なものはインストールできるのですが
それ以外だと、msys2の有無にかかわらず~/.roswell以下にmsys2がインストールされて
それが全くまともに動作せず何もインストールできません。
sbcl-binのような末尾にbinがついて、ビルドが不要なものはインストールできるのですが
それ以外だと、msys2の有無にかかわらず~/.roswell以下にmsys2がインストールされて
それが全くまともに動作せず何もインストールできません。
524デフォルトの名無しさん
2019/01/20(日) 15:17:16.36ID:S2xiCEld 最近Lispを勉強し始めた超初心者です。
関数型言語も初めてです。
末尾再帰の最適化をするとコンパイラがループにしてくれるので効率がいい、の説明が腑に落ちません。
再帰は読むのも書くのもループより高コストだと思いますが、
その結果がループ並みに早くなる、では何のために再帰にするのかわかりません。
なにか他にメリットが有るのでしょうか。
関数型言語も初めてです。
末尾再帰の最適化をするとコンパイラがループにしてくれるので効率がいい、の説明が腑に落ちません。
再帰は読むのも書くのもループより高コストだと思いますが、
その結果がループ並みに早くなる、では何のために再帰にするのかわかりません。
なにか他にメリットが有るのでしょうか。
525デフォルトの名無しさん
2019/01/20(日) 15:44:22.07ID:wbmgJCyM Common LispじゃなくてSchemeだけど、こんな説明はどうでしょう
http://practical-scheme.net/docs/tailcall-j.html
http://practical-scheme.net/docs/tailcall-j.html
526はちみつ餃子 ◆8X2XSCHEME
2019/01/20(日) 21:45:08.14ID:/TyOXJfP >>524
関数呼出しっていうのは、一般的なコンピュータの中でどのような
動作をするかというとその実態はジャンプとスタック操作でしかない。
再帰であろうとループであろうと中ではただジャンプしてるだけだよ。
(実際にはリソースの管理とかが一体化してるのでそう単純でもないんだけど。)
再帰というのがスタック操作をするループであると捉えるか、
ループというのがスタック操作を省略できる再帰であると捉えるのかは
別の側面から見ているというだけで同じことを言ってる。
どっちを軸するかという説明の仕方の違いってだけ。
関数呼出しっていうのは、一般的なコンピュータの中でどのような
動作をするかというとその実態はジャンプとスタック操作でしかない。
再帰であろうとループであろうと中ではただジャンプしてるだけだよ。
(実際にはリソースの管理とかが一体化してるのでそう単純でもないんだけど。)
再帰というのがスタック操作をするループであると捉えるか、
ループというのがスタック操作を省略できる再帰であると捉えるのかは
別の側面から見ているというだけで同じことを言ってる。
どっちを軸するかという説明の仕方の違いってだけ。
527デフォルトの名無しさん
2019/01/20(日) 23:30:23.13ID:m7XAF6Qj >>524 が聞きたいのは、それを再帰として書くことの利点だと思う。
読み書きのコストは慣れの問題で、分野によっては再帰で書くほうが慣れてるんだよ。
関数型言語の界隈は数学寄りの人が多いんだけど、数学は再帰で書くことが多いんだ。
関数呼んでるだけだから、ループ用の特別な構文がいらないってのもある。
これはどっちかっていうと言語の規格とかそっち側の都合だけど。
読み書きのコストは慣れの問題で、分野によっては再帰で書くほうが慣れてるんだよ。
関数型言語の界隈は数学寄りの人が多いんだけど、数学は再帰で書くことが多いんだ。
関数呼んでるだけだから、ループ用の特別な構文がいらないってのもある。
これはどっちかっていうと言語の規格とかそっち側の都合だけど。
528はちみつ餃子 ◆8X2XSCHEME
2019/01/21(月) 00:09:20.61ID:seIeK7lJ あ〜、そっか。
Common Lisp 的にはそこまで積極的に何もかも (明示的に) 再帰で書くスタイルを推奨しているわけではないし、
ループ的に書く方が読みやすければそう書いてもいいんだが、
他の言語に比べれば再帰を理解している必要は有るので、
チュートリアルの類では過剰に再帰を推してる感じがするかも。
Common Lisp 的にはそこまで積極的に何もかも (明示的に) 再帰で書くスタイルを推奨しているわけではないし、
ループ的に書く方が読みやすければそう書いてもいいんだが、
他の言語に比べれば再帰を理解している必要は有るので、
チュートリアルの類では過剰に再帰を推してる感じがするかも。
529デフォルトの名無しさん
2019/01/21(月) 08:36:01.54ID:n4GEno5f ループはiの様なループ変数が必要だけど、これは変数への破壊的代入または再代入になる
関数型プログラミングはそれを嫌う
末尾呼び出しの最適化を前提に書けば破壊的代入無しにループが書ける
関数型プログラミングはそれを嫌う
末尾呼び出しの最適化を前提に書けば破壊的代入無しにループが書ける
530デフォルトの名無しさん
2019/01/22(火) 03:37:24.22ID:rqabYXWq 526 にも書いてるけど、変数の破壊的代入と再帰と末尾呼び出しの最適化はそれぞれ別々のものだと思うけどね
(let ((i 10)
(closures nil))
(labels ((iter ()
(if (zerop i)
nil
(progn
(push (lambda () i) closures)
(decf i)
(iter)))))
(iter)
(mapcar #'funcall closures)))
⇒ (0 0 0 0 0 0 0 0 0 0)
(let ((i 10)
(closures nil))
(dotimes (i i)
(let ((i i))
(push (lambda () i) closures)))
(mapcar #'funcall closures))
⇒ (9 8 7 6 5 4 3 2 1 0)
(let ((i 10)
(closures nil))
(labels ((iter ()
(if (zerop i)
nil
(progn
(push (lambda () i) closures)
(decf i)
(iter)))))
(iter)
(mapcar #'funcall closures)))
⇒ (0 0 0 0 0 0 0 0 0 0)
(let ((i 10)
(closures nil))
(dotimes (i i)
(let ((i i))
(push (lambda () i) closures)))
(mapcar #'funcall closures))
⇒ (9 8 7 6 5 4 3 2 1 0)
531デフォルトの名無しさん
2019/01/22(火) 18:44:06.81ID:61UMm30F >>530
上と下が随分違うコードで比較して何が言いたいのかよく分からん…
上のコードは
(let ((i 10))
(labels ((iter (n closures)
(if (zerop n)
closures
(iter (1- n) (cons (lambda () i) closures)))))
(mapcar #'funcall (iter i nil))))
⇒ (10 10 10 10 10 10 10 10 10 10)
と書けば破壊的代入を避けてループが書ける
closuresも破壊的代入してたけど、Common Lispだと簡単にそういうコードを書いてしまう
結局破壊的代入無しにループ書くには再起呼び出しが必須と言うだけだ
再起呼び出しは簡単にスタックオーバーフローするから末尾呼び出しの最適化は前提でしょ
上と下が随分違うコードで比較して何が言いたいのかよく分からん…
上のコードは
(let ((i 10))
(labels ((iter (n closures)
(if (zerop n)
closures
(iter (1- n) (cons (lambda () i) closures)))))
(mapcar #'funcall (iter i nil))))
⇒ (10 10 10 10 10 10 10 10 10 10)
と書けば破壊的代入を避けてループが書ける
closuresも破壊的代入してたけど、Common Lispだと簡単にそういうコードを書いてしまう
結局破壊的代入無しにループ書くには再起呼び出しが必須と言うだけだ
再起呼び出しは簡単にスタックオーバーフローするから末尾呼び出しの最適化は前提でしょ
532デフォルトの名無しさん
2019/01/23(水) 01:49:56.83ID:2DvRHl1Y すげぇ歴史がある言語のわりに全然ドキュメントもライブラリもないっすね…
533デフォルトの名無しさん
2019/01/23(水) 15:13:20.89ID:I7vJASel Forthをdisるのはやめれ
534デフォルトの名無しさん
2019/01/23(水) 16:46:55.68ID:HL71aJyT ドキュメントがまだないのはまだ始ってないから。
もう少し待て。いつか必ずブームがくるから。
もう少し待て。いつか必ずブームがくるから。
535デフォルトの名無しさん
2019/01/23(水) 18:13:57.77ID:iEoy0Btk lisp勉強中だが他言語しばらく触った後lispに戻ってくるとコード見るだけで笑えてくる
536デフォルトの名無しさん
2019/01/23(水) 20:17:08.92ID:W71jjF2T かっこかっこかっこかっこかっこばかり
537デフォルトの名無しさん
2019/01/23(水) 21:36:19.03ID:OIIGbqIY カッコいいね
538デフォルトの名無しさん
2019/01/24(木) 10:47:39.00ID:TePOwsZ1 Juliaってかっこいいですか?
539デフォルトの名無しさん
2019/01/24(木) 11:43:43.15ID:6qwP1ilP カッコはともだち こわくないよ
540デフォルトの名無しさん
2019/01/25(金) 14:34:14.18ID:07wWn8gG Juliaって何かと思ったら新しい言語か
JuliaもそうだけどASTのレベルを構築出来るマクロをLisp-like macroって言うのは違うだろうと思う
Lispのマクロはコードの見た目を変更するという至極単純で唯一無二のものだからな
JuliaもそうだけどASTのレベルを構築出来るマクロをLisp-like macroって言うのは違うだろうと思う
Lispのマクロはコードの見た目を変更するという至極単純で唯一無二のものだからな
541デフォルトの名無しさん
2019/01/26(土) 01:26:25.34ID:bl37ikQs > Lispのマクロはコードの見た目を変更するという至極単純で唯一無二のものだからな
って言うのは違うだろうと思う
って言うのは違うだろうと思う
542はちみつ餃子 ◆8X2XSCHEME
2019/01/26(土) 03:08:15.37ID:ixrTaENi LISP 的なマクロというのは
「プログラムはリストであり、リスト操作によってプログラムを変形する」
と私は捉えているので、前提となる「プログラムはリスト」の部分がないと
やっぱりちょっと LISP 的とは言えないかな〜とは思う。
ただ、各言語の構文木の表現がリストと言えるかどうかはかなり微妙だし、
Scheme のように明らかに LISP 系の言語でもそのマクロ機構 (syntax-rules) がリスト操作
と呼べる範疇なのかどうかは人によって感覚が違うかもしれないというのもわかるので、
ふんわりと捉えてあげてもいいんじゃないかと。
「プログラムはリストであり、リスト操作によってプログラムを変形する」
と私は捉えているので、前提となる「プログラムはリスト」の部分がないと
やっぱりちょっと LISP 的とは言えないかな〜とは思う。
ただ、各言語の構文木の表現がリストと言えるかどうかはかなり微妙だし、
Scheme のように明らかに LISP 系の言語でもそのマクロ機構 (syntax-rules) がリスト操作
と呼べる範疇なのかどうかは人によって感覚が違うかもしれないというのもわかるので、
ふんわりと捉えてあげてもいいんじゃないかと。
543デフォルトの名無しさん
2019/01/26(土) 11:11:15.46ID:yVAkGzul TclはLisp的か
544デフォルトの名無しさん
2019/01/26(土) 13:04:05.95ID:HhE3t8c5 nil
545デフォルトの名無しさん
2019/01/29(火) 02:23:30.16ID:a0yta6qd Lispってカッコだらけで視認性悪いのに何で最後に)))))って閉じるコーディングスタイルがスタンダードっぽいの?
(some
(some
)
)
こうやってネストと閉じカッコを対応させておけば閉じ忘れしにくくて視認性も良いと思うのだが
(some
(some
)
)
こうやってネストと閉じカッコを対応させておけば閉じ忘れしにくくて視認性も良いと思うのだが
546デフォルトの名無しさん
2019/01/29(火) 02:59:58.51ID:jbL5Y/0k >>545
じゃあお前が広めれば?
じゃあお前が広めれば?
547デフォルトの名無しさん
2019/01/29(火) 13:01:27.96ID:yJ0I+sIY Lisperはカッコを見ずにインデントを見る
カッコだけの行が有るとかえって分かりにくくなる
EmacsならRainbowDelemitter使うとカッコの輝度が下がって目障りでもなくなる
カッコだけの行が有るとかえって分かりにくくなる
EmacsならRainbowDelemitter使うとカッコの輝度が下がって目障りでもなくなる
548デフォルトの名無しさん
2019/01/29(火) 15:54:32.57ID:tEhI5kt3 slime の C-c C-] とか一気に全部かっこを閉じるコマンドを使うから、閉じ忘れとか気にしないなあ
549デフォルトの名無しさん
2019/01/29(火) 16:25:08.69ID:e8yOd/P9 XMLのタグみたいなもんだな。XMLがそれを理由に廃れたことも含めて。
550デフォルトの名無しさん
2019/01/29(火) 21:07:40.48ID:TIeo+FQH551デフォルトの名無しさん
2019/01/30(水) 12:44:23.33ID:eo/Tys4V >>550
カッコだけの行が有るとインデントが分かりにくくなるという意味だが、わざわざ書かないと分からんか?
カッコだけの行が有るとインデントが分かりにくくなるという意味だが、わざわざ書かないと分からんか?
552デフォルトの名無しさん
2019/01/30(水) 12:52:38.76ID:Lcj20AkF エアプさん必死やねw
553デフォルトの名無しさん
2019/01/30(水) 13:13:38.82ID:cw4gcsqU (a))))
の部分のaだけ頻繁にコメントする時は不便に感じる
↓
(a)
)))
にしていいよね?
の部分のaだけ頻繁にコメントする時は不便に感じる
↓
(a)
)))
にしていいよね?
554デフォルトの名無しさん
2019/01/30(水) 13:46:07.35ID:jx8GGD5s わかる。
(hoge
(fuga
(piyo))) ; ここにコメント書くと、式全体を閉じるということに書いてる気がする
(hoge
(fuga
(piyo) ; こう書くと、 (piyo) 式にだけコメント書いてる気がする
))
(hoge
(fuga
(piyo))) ; ここにコメント書くと、式全体を閉じるということに書いてる気がする
(hoge
(fuga
(piyo) ; こう書くと、 (piyo) 式にだけコメント書いてる気がする
))
555デフォルトの名無しさん
2019/01/30(水) 13:59:53.27ID:eo/Tys4V556デフォルトの名無しさん
2019/01/30(水) 21:17:23.83ID:jAE5E/lv C系の言語から来ると最初は閉じ括弧の行がないのが気になるかもしれないが
すぐ慣れてむしろ邪魔になるゾ
というか今どきのスクリプト言語みんなそうじゃないか
すぐ慣れてむしろ邪魔になるゾ
というか今どきのスクリプト言語みんなそうじゃないか
557デフォルトの名無しさん
2019/01/31(木) 12:29:13.76ID:lgLgsaY3 かっこの話題になるとわらわら湧いてくる陸リスパーさん達w
558デフォルトの名無しさん
2019/01/31(木) 15:46:41.09ID:aH0rCOCG うby最強
559デフォルトの名無しさん
2019/02/01(金) 01:45:52.05ID:pWouqX0G 海でLispするのが本物ってこと?
560デフォルトの名無しさん
2019/02/01(金) 07:48:11.81ID:eMw5OSNU >>559
なんや急に本物て?偽物の自覚でもあったんかおまえw
なんや急に本物て?偽物の自覚でもあったんかおまえw
561デフォルトの名無しさん
2019/02/01(金) 20:04:50.60ID:ZYD6dOWd 何んか湧いてますね
562デフォルトの名無しさん
2019/02/02(土) 01:05:09.97ID:JTaE88Yv にわか認定したい奴が沸いてんのかね
Lisperなんてカッコに嫌悪感がなければそんなに労せずなれると思うけどね
Lisperなんてカッコに嫌悪感がなければそんなに労せずなれると思うけどね
563デフォルトの名無しさん
2019/02/02(土) 07:45:51.33ID:DNtrULkT >>562
そのセリフはせめてリスパーになってから言ったらどおや?陸リスパーさんw
そのセリフはせめてリスパーになってから言ったらどおや?陸リスパーさんw
564デフォルトの名無しさん
2019/02/02(土) 08:23:24.85ID:UAuMFjv9 陸リスパーの定義を述べよ。
リスパーの定義を述べよ。
リスパーの定義を述べよ。
565デフォルトの名無しさん
2019/02/02(土) 09:51:20.74ID:BIkLOTfK トランクに入れるとか
566デフォルトの名無しさん
2019/02/02(土) 12:43:40.25ID:8UgzjBVu り…陸リスパー
567デフォルトの名無しさん
2019/02/02(土) 19:18:03.31ID:UAuMFjv9 おだろうね
568はちみつ餃子 ◆8X2XSCHEME
2019/02/02(土) 19:22:38.57ID:KkdP20n5 陸には「くが」という読みも有ります。
569デフォルトの名無しさん
2019/02/02(土) 22:26:20.61ID:zdLK2rou570デフォルトの名無しさん
2019/02/03(日) 11:47:11.28ID:o6ig8vkN 陸リスパーさん、案の定バカやったwww
571デフォルトの名無しさん
2019/02/03(日) 11:59:09.21ID:6SxaUJ1h ツマンネ
572デフォルトの名無しさん
2019/03/20(水) 17:01:33.89ID:Cy24MG6x も〜すぐ春ですね。
573デフォルトの名無しさん
2019/06/15(土) 16:34:52.25ID:5WxVHbel defmacroだとdestructuring bind?が使えて
(defmacro test ((a b &optional c) d)
(print (list a b c d))
nil)
(test (1 2) 4) => (1 2 NIL 4)
みたいに書けるけど、&optionalや&keyの後に書こうとしてもSBCLだとdefmacroを評価した時点でエラーになる
&restの後ろには一応書けるっぽい
必須引数と&restの所には書けるけど、&optionalと&keyの所には書けないという認識で良いのか?
もし&optionalの所に書けるなら書き方を教えてくれ
(defmacro test ((a b &optional c) d)
(print (list a b c d))
nil)
(test (1 2) 4) => (1 2 NIL 4)
みたいに書けるけど、&optionalや&keyの後に書こうとしてもSBCLだとdefmacroを評価した時点でエラーになる
&restの後ろには一応書けるっぽい
必須引数と&restの所には書けるけど、&optionalと&keyの所には書けないという認識で良いのか?
もし&optionalの所に書けるなら書き方を教えてくれ
574デフォルトの名無しさん
2019/06/23(日) 06:22:35.07ID:DFwOz3vJ575デフォルトの名無しさん
2019/06/23(日) 17:17:52.99ID:MRp+xueZ576デフォルトの名無しさん
2019/06/26(水) 20:14:20.90ID:Y3pTO8/n コードを C や perl や Lisp や python に書き換えて速度比べていたんですが
perl に速度負けしたのは、ちゃんと Lisp 書けるようになれば逆転できますかね?
処理系は CCL Version 1.11.5/v1.11.5 (WindowsX8632)
perl に負けるのは悔しいんですよ
perl に速度負けしたのは、ちゃんと Lisp 書けるようになれば逆転できますかね?
処理系は CCL Version 1.11.5/v1.11.5 (WindowsX8632)
perl に負けるのは悔しいんですよ
577デフォルトの名無しさん
2019/06/26(水) 20:21:44.11ID:BI2PiUEB >>576
sbcl使えば?
sbcl使えば?
578デフォルトの名無しさん
2019/06/26(水) 20:46:18.82ID:Y3pTO8/n 早い
まだリファクタリングしてないのにこの速さ
ありがとうございます。ここまで scbl が速いとは
0.331 C
0.616 scbl
0.749 perl
0.943 CCL
2.912 python
まだリファクタリングしてないのにこの速さ
ありがとうございます。ここまで scbl が速いとは
0.331 C
0.616 scbl
0.749 perl
0.943 CCL
2.912 python
579デフォルトの名無しさん
2019/06/27(木) 01:23:25.87ID:dlyc1cFh CとPerlが2倍程度しか違わないとかどんなコードか気になる
普通二桁違ってもおかしくない
普通二桁違ってもおかしくない
580デフォルトの名無しさん
2019/06/27(木) 02:17:45.54ID:9Zxtgl6E C malloc とか使えばもっと早くなりそう
https://paste.fedoraproject.org/paste/28GrwCXGgyRCKRMZYoZKWA
perl5 これは色々時間測って速度でるようにしてる
https://paste.fedoraproject.org/paste/ZcWy7fa2ca4BAO5INcSscw
https://paste.fedoraproject.org/paste/28GrwCXGgyRCKRMZYoZKWA
perl5 これは色々時間測って速度でるようにしてる
https://paste.fedoraproject.org/paste/ZcWy7fa2ca4BAO5INcSscw
581デフォルトの名無しさん
2019/06/27(木) 14:46:57.17ID:0O4NWcuW 最適化コンパイルしているか疑問
もっと早くなる気がする
もっと早くなる気がする
582デフォルトの名無しさん
2019/06/27(木) 17:18:17.57ID:9Zxtgl6E gcc でも gcc -Ofast -march=native でも
このコードは早さ変らなかった
Cをもっと早く走らせる書きかたはあると思う
しかしながら当面の目標は、Lispなどで
早く走るコードに仕上げることだ
このコードは早さ変らなかった
Cをもっと早く走らせる書きかたはあると思う
しかしながら当面の目標は、Lispなどで
早く走るコードに仕上げることだ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★11 [蚤の市★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 旧姓使用拡大に連合会長が反発 「何の説明もない。選択的夫婦別氏制度導入を」 男女共同参画会議 [ぐれ★]
- 向こう3カ月のコメ価格、下落予想強まる…新の収穫量増え需給緩むか 米穀安定供給…調査 [蚤の市★]
