のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,830人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレEmacs Part 52

    emacs スレッド一覧へ / emacs とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    201 : 名無しさん@お腹 - 2020/08/21(金) 06:11:57.91 .net (+22,-14,-8)
    それ環境変数かカーネルのオプション依存じゃなかったか?
    202 : 名無しさん@お腹 - 2020/08/21(金) 22:15:18.19 .net (+9,-29,-151)
    >>197です。cygwin環境下のbashやfindやpythonを使ってたからからうまくいかなかった
    だけで,windowsネイティブにビルドされたpython使うことで目的は達成できました。

    >>199
    俺の勉強不足ではあるんだけどpowershellは文化が違い過ぎてスクリプトの
    小さいカスタマイズにさえ時間がかかってしまうのでできれば避けてる。

    >>200
    せっかくなのでしばらく使ってなかったEmacs Lisp入門を読みながら作ってみます。
    なんやかんやでコピペ以外でまともにemacs lisp触るのはmule-2.3以来かな。
    歳とったなぁ

    >>201
    UNIX系はファイル名長255バイトの実装しか知らないです。
    203 : 名無しさん@お腹 - 2020/08/21(金) 22:29:08.84 .net (-1,-29,-17)
    NTFSも255文字だよな
    ファイル名じゃなくてパス名長の制限の問題か
    文字コード変えた結果なんか変わるのか
    204 : 名無しさん@お腹 - 2020/08/21(金) 23:51:08.30 .net (+2,-29,-35)
    27.1でgnus-namazu.elが動かなくなってしまった。
    苦労してnnir+namazuにしてみたが、微妙。
    205 : 名無しさん@お腹 - 2020/08/22(土) 00:31:24.65 .net (+8,-29,-34)
    27.1試して古いelispでバッククオート云々のエラーが出て26に戻し中
    互換性失う変更点だけどこかにまとめてある?
    206 : 名無しさん@お腹 - 2020/08/22(土) 04:32:43.60 .net (+4,-30,-29)
    新版が出たらNEWSを見るのは太古から変わらん
    * Incompatible Lisp Changes in Emacs 27.1
    だけでなく新機能を知るためにも必須
    207 : 名無しさん@お腹 - 2020/08/22(土) 12:04:43.92 .net (+3,-30,-29)
    >>206
    ありがとう!
    ** Old-style backquotes now generate an error.
    に書いてあった。
    が、いままでWarning出ていたのか……気づかんかった……orz
    208 : 名無しさん@お腹 - 2020/08/22(土) 13:40:30.46 .net (+3,-30,-28)
    (‘ (hoge))のような書き方の事か
    エラーにする事もないと思うがな
    '(a b c)と(quote (a b c))
    (a b c)と(‘ (a b c))で一貫性がある
    警告出すぐらいが丁度良い
    209 : 名無しさん@お腹 - 2020/08/22(土) 14:18:13.39 .net (+18,-9,-14)
    いや、quoteって書かないと一貫性ないやん
    210 : 名無しさん@お腹 - 2020/08/22(土) 16:51:52 .net (+24,-3,-9)
    書くならbackquoteだが長過ぎる
    前者は構文でそれに対応した関数が存在するという一貫性の事を言っていた
    211 : 名無しさん@お腹 - 2020/08/22(土) 17:23:53 .net (+34,-29,-19)
    いやquoteは見た目は関数でも関数じゃないし
    そもそも ` を ‘ と書いてるし根本的に……
    212 : 名無しさん@お腹 - 2020/08/23(日) 00:09:01.48 .net (+67,+29,-40)
    >>211
    スペシャルフォームと言いたいんだろ?
    スペシャルフォームは一部の引数を評価しないだけの、ただの関数だ
    バッククオートはスマホで入力してるから何かおかしいなと思いながら変な記号を使ってしまったよ
    213 : 名無しさん@お腹 - 2020/08/23(日) 05:49:01.77 .net (+3,-30,+0)
    NEWS.19 だからもう30年以上前か
    *** You can now use Common Lisp syntax for the backquote and comma
    macros. Thus, you can now write `(x ,y z) instead of (` (x (, y) z)).

    NEWS.24 でははっきり Please remove とあるだけでなく
    The most common cause of trouble seems to be an old-style backquote
    まで書いてある
    ** Support for "old-style" backquotes, obsolete for 10+ years, has
    been further reduced. Now a backquote not followed by a space is
    always treated as a "new-style" backquote. Please remove all
    "old-style" backquotes from your code. If your code uses backquotes
    as documented in the Elisp manual, and compiles without warning, then
    you have nothing to do in this regard. Code not following the
    appropriate conventions may fail to compile.

    warning で will be remove soon と言ってた
    Warning: !! The file uses old-style backquotes !!
    This functionality has been obsolete for more than 10 years already
    and will be removed soon. See (elisp)Backquote in the manual.

    もう十分だよ

    そもそも 30年 も前から
    `(a b ,(+ 2 1) ,@(list 2 1))
    と書けたのに
    (` (a b (, (+ 2 1)) (,@ (list 2 1))))
    なんてわざわざ書く意味がわからん
    214 : 名無しさん@お腹 - 2020/08/23(日) 06:04:58.84 .net (+15,-25,-41)
    それからスペシャルフォームは関数じゃないぞ
    Lispにおいては厳密に区別されるぞ
    純Lispで区別されてるぞ
    スペシャルフォームを関数の一種だなんて言うと恥ずかしいぞ
    215 : 名無しさん@お腹 - 2020/08/23(日) 08:42:44.39 .net (+57,+29,-14)
    関数の一種はアウト
    関数みたいなものならセーフだったのに
    216 : 名無しさん@お腹 - 2020/08/23(日) 22:44:22.57 .net (-1,-29,-30)
    init.elがようやく450行位になった新参です
    宜しくお願いします
    217 : 名無しさん@お腹 - 2020/08/23(日) 23:07:32.62 .net (+51,-12,-37)
    >>214
    俺がLispを実装したときに、スペシャルフォームも普通に関数として実装した
    そもそもEmacsのソース見ればそんなこと一目瞭然だ
    218 : 名無しさん@お腹 - 2020/08/24(月) 08:21:52.66 .net (+3,-30,-53)
    CommonLispに毒されきった身からすれば、
    `a

    (backquote a)
    なんであって
    `

    backquote
    に置換されるのは気持ち悪いということだろ。’aが(quote a)なんだから、一貫性という意味で(’a)も(quote a)となるようにしたら大混乱だろ。
    219 : 名無しさん@お腹 - 2020/08/24(月) 15:33:32.00 .net (+3,-30,-125)
    ちなみに、
    (defmacro backquote (structure) ...)
    (defalias '\` (symbol-function 'backquote))
    は、27.1でも定義してあって
    (backquote ,@(+ 1 2 3)) => 6
    はエラーにならずに実行できる
    俺の書き込みが色々間違ってたようだが、要するにまとめると
    '(a b c) => (a b c)
    `(a b c) => (a b c)
    (quote (a b c)) => (a b c)
    (backquote (a b c)) => (a b c)
    (' (a b c)) エラー
    (` (a b c)) 27.1からエラー
    エラーになった事でむしろちゃんと一貫した結果になった
    220 : 名無しさん@お腹 - 2020/08/30(日) 14:22:10.42 .net (+57,+29,-5)
    スペシャルフォームは関数の一種ではない
    あえて言うなら、関数がスペシャルフォームの一種
    221 : 名無しさん@お腹 - 2020/08/31(月) 11:59:35.51 .net (+57,+29,-30)
    「関数の引数はすべて評価される」と言うルールに抵触するから特殊形式は関数で無い。
    222 : 名無しさん@お腹 - 2020/08/31(月) 12:36:25.27 .net (+52,+29,+0)
    220以上のことを言ったらどうだ
    223 : 名無しさん@お腹 - 2020/08/31(月) 13:15:47.60 .net (+48,+20,-9)
    スペシャルフォームの中で全ての引数が評価されるものを関数と呼ぶ、でOK?
    224 : 名無しさん@お腹 - 2020/08/31(月) 14:13:54.64 .net (+71,+29,-7)
    盛大に恥をさらした >>217 は今頃どこで何をしているだろう……
    225 : 名無しさん@お腹 - 2020/08/31(月) 14:22:51.69 .net (+57,+29,-14)
    Lispには一見Cなんかの言語の変数の様に見えるけど変数じゃ無いとか、Cの関数みたいだけと関数じゃ無いとか…
    そう言うの多いよ。
    226 : 名無しさん@お腹 - 2020/08/31(月) 14:40:50.71 .net (+20,-7,-1)
    てか、Emacs のスレなのになんで Lisp 一般の話になってるん。
    227 : 名無しさん@お腹 - 2020/08/31(月) 15:21:13.30 .net (+57,+29,-45)
    Emacsの仕様変更にケチつけたやつがいてな
    そいつがLispの半可通だったのがケチつけた原因だったから
    迷惑で恥ずかしい、いや恥知らずな奴だった
    228 : 名無しさん@お腹 - 2020/08/31(月) 18:47:50.01 .net (-1,-29,-6)
    symbol-functionでとりだせるんやから関数でええやん、といったらどうなん。
    229 : 名無しさん@お腹 - 2020/08/31(月) 18:51:27.30 .net (+12,-29,-50)
    >>224
    呼んだか?
    何も間違ったこといってないぞ
    defvarで定義された変数はスペシャル変数という
    スペシャルフォームはスペシャルなフォームだ
    他にも式(expression)とも言ったりする
    (スペシャルじゃない)フォーム
    expression
    関数
    を正確に違いを定義して教えてくれ
    230 : 名無しさん@お腹 - 2020/08/31(月) 19:33:54 .net (+57,+29,-9)
    こんだけ偉そうに教えろと言っといて論破されたら大草原の小さな家
    231 : 205 - 2020/08/31(月) 20:16:04.31 .net (+3,-29,-68)
    package-installができる前から使っていて、古いまま $HOME/lispに置いてあった
    python-mode.el の中にバッククォートが使われていたのでした。なお最新verでは
    そんな記述はもうないので問題なし。以上、報告終わり

    C言語が一番なじんでいる身としてはLisp処理系ってどれにどっぷりつかればいいのかわからなかったけど
    結局 elisp を理解するのが「自分にとって」一番役に立つと思い知らされた一件でした
    232 : 名無しさん@お腹 - 2020/08/31(月) 20:36:58.45 .net (+31,-29,-46)
    スペシャルフォームを関数の一部だとか関数で書いたとかいう奴は
    まず defun で quote 等価の my-quote を書いて実証して欲しいな
    233 : 名無しさん@お腹 - 2020/08/31(月) 20:49:51.71 .net (+77,+29,-3)
    >>232
    関数がスペシャルフォームの一部というのは良い感じか
    234 : 名無しさん@お腹 - 2020/08/31(月) 21:22:21.88 .net (+3,-30,-85)
    例えば def-special-form ってのがあったとする
    quote っぽいスペシャルフォーム my-quote が

    (def-special-form my-quote (arg) arg)

    みたいに定義できるとして
    car っぽい関数 my-car なら cdr 部無視すればこんな感じで書ける

    (def-special-form my-car (car &rest cdr) (eval car))

    これは、関数がスペシャルフォームの一部である、という一例と言えなくもない
    235 : 名無しさん@お腹 - 2020/08/31(月) 23:02:23.51 .net (+66,-5,-12)
    >>233
    よくない感じ。スペシャルフォームはスペシャルフォームは関数じゃないというlispの文脈でつかわれるものだから。対して関数はlispじゃない文脈でつかえるから。
    236 : 名無しさん@お腹 - 2020/08/31(月) 23:25:27.78 .net (+57,+29,-56)
    Lispの関数の話をしていたのにソース言語の関数にすりかえですか
    困ったらこうくるだろうと予想してた通りだね
    「俺はLispの話はしていない」ってご飯論法の仲間だよな
    237 : 名無しさん@お腹 - 2020/08/31(月) 23:46:35.42 .net (+11,-16,-56)
    初心者が Lisp の実装を勉強する場合、実装言語の関数と Lisp の関数を混同して矛盾、理解がおかしくなることは良くある。
    メタ言語と対象言語の概念は区別せんとね。
    238 : 名無しさん@お腹 - 2020/09/01(火) 00:01:04.37 .net (+103,+29,-7)
    >>235
    まあこの世に同じ物なんてないんだけどね
    コンテキストは大抵違う
    239 : 名無しさん@お腹 - 2020/09/01(火) 06:20:47.45 .net (+3,-30,-263)
    そもそも Info の Elisp の 13.1 What Is a Function? に

    > Certain function-like objects, called “special forms” and “macros”,
    >also accept arguments to carry out computations. However, as explained
    >below, these are not considered functions in Emacs Lisp.

    スペシャルフォームは関数じゃないと明言されてるし

    >Here are important terms for functions and function-like objects:

    >“primitive”
    > A function which is callable from Lisp but is actually written in
    > C. Primitives are also called “built-in functions”, or “subrs”.
    > Examples include functions like ‘car’ and ‘append’. In addition,
    > all special forms (see below) are also considered primitives.

    ビルトイン関数やスペシャルフォームのような C で書かれたものには
    primitive という総称がちゃんとある

    Info すら見ないで Emacs Lisp を語らないで欲しい
    240 : 名無しさん@お腹 - 2020/09/01(火) 09:00:09.90 .net (+57,+29,-11)
    「info を読もう」か良いね。
    これにて終了。
    241 : 名無しさん@お腹 - 2020/09/01(火) 09:24:36.89 .net (+76,+29,-71)
    >>238
    うん。そこをビシッとついてギャフンというような議論がみたい。
    スペシャルフォームは関数だという主張はelispのあるべき姿というコンテキストなので、現在のelispから離れていても問題ないんだけど、主張してる方も反論してる方もさっぱり分かってない。なおかつもとのbackquote のはなしとも全然関係ない方向。
    242 : 名無しさん@お腹 - 2020/09/01(火) 09:28:15.63 .net (+57,+29,-15)
    べつに関数そのものだなんて読み方は誰もしないと思うよ
    なぜならbackquoteとつながってる話だから
    コンテキストを意識しないとあかんよチミ
    243 : 名無しさん@お腹 - 2020/09/01(火) 17:31:23.34 .net (+94,+30,-81)
    関数とスペシャルフォームの違いという定義すら知らない「恥ずかしい人」から
    Lispの関数と処理系記述言語で記述した関数を混同してごまかそうとする「恥知らず」を経て
    俯瞰者視点を装って当事者じゃないふりでごまかそうとする「厚顔無恥」へランクアップ
    244 : 名無しさん@お腹 - 2020/09/01(火) 17:40:40.55 .net (+43,+25,+0)
    ギャフン!
    245 : 名無しさん@お腹 - 2020/09/01(火) 18:45:35.77 .net (+43,+25,-2)
    へっ?
    246 : 名無しさん@お腹 - 2020/09/01(火) 20:29:29.79 .net (+57,+29,-23)
    “ スペシャルフォームは関数の一種だ”
    このフレーズを正当化しようとし続ける姿に涙が🤣
    247 : 名無しさん@お腹 - 2020/09/02(水) 00:10:06.18 .net (+65,+25,-30)
    >>243
    その、関数とスペシャルフォームの違い、を定義してみてよ
    248 : 名無しさん@お腹 - 2020/09/02(水) 01:53:24.89 .net (+57,+29,-9)
    定義っていうか、参考になるページを誰かが貼っておわりみたいな話題じゃないの?
    249 : 名無しさん@お腹 - 2020/09/02(水) 05:33:37.50 .net (+0,-27,-4)
    上で Emacs の info にあるって言ってたろう。
    250 : 名無しさん@お腹 - 2020/09/02(水) 09:07:02 .net (+29,-30,-160)
    emacs を起動して
    C-h i と押すと Info が起動する

    * Elisp: (elisp). The Emacs Lisp Reference Manual.

    という行に移動して ENTER
    m を押して、ミニバッファに functions と入力して ENTER
    m を押して what と入力して ENTER
    これで

    13.1 What Is a Function?

    が表示されるはず
    Info の使い方は ? を押すと表示されるぞ
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について