私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレEmacs Part 52
emacs スレッド一覧へ / emacs とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>197です。cygwin環境下のbashやfindやpythonを使ってたからからうまくいかなかった
だけで,windowsネイティブにビルドされたpython使うことで目的は達成できました。
>>199
俺の勉強不足ではあるんだけどpowershellは文化が違い過ぎてスクリプトの
小さいカスタマイズにさえ時間がかかってしまうのでできれば避けてる。
>>200
せっかくなのでしばらく使ってなかったEmacs Lisp入門を読みながら作ってみます。
なんやかんやでコピペ以外でまともにemacs lisp触るのはmule-2.3以来かな。
歳とったなぁ
>>201
UNIX系はファイル名長255バイトの実装しか知らないです。
だけで,windowsネイティブにビルドされたpython使うことで目的は達成できました。
>>199
俺の勉強不足ではあるんだけどpowershellは文化が違い過ぎてスクリプトの
小さいカスタマイズにさえ時間がかかってしまうのでできれば避けてる。
>>200
せっかくなのでしばらく使ってなかったEmacs Lisp入門を読みながら作ってみます。
なんやかんやでコピペ以外でまともにemacs lisp触るのはmule-2.3以来かな。
歳とったなぁ
>>201
UNIX系はファイル名長255バイトの実装しか知らないです。
NTFSも255文字だよな
ファイル名じゃなくてパス名長の制限の問題か
文字コード変えた結果なんか変わるのか
ファイル名じゃなくてパス名長の制限の問題か
文字コード変えた結果なんか変わるのか
27.1でgnus-namazu.elが動かなくなってしまった。
苦労してnnir+namazuにしてみたが、微妙。
苦労してnnir+namazuにしてみたが、微妙。
27.1試して古いelispでバッククオート云々のエラーが出て26に戻し中
互換性失う変更点だけどこかにまとめてある?
互換性失う変更点だけどこかにまとめてある?
新版が出たらNEWSを見るのは太古から変わらん
* Incompatible Lisp Changes in Emacs 27.1
だけでなく新機能を知るためにも必須
* Incompatible Lisp Changes in Emacs 27.1
だけでなく新機能を知るためにも必須
>>206
ありがとう!
** Old-style backquotes now generate an error.
に書いてあった。
が、いままでWarning出ていたのか……気づかんかった……orz
ありがとう!
** Old-style backquotes now generate an error.
に書いてあった。
が、いままでWarning出ていたのか……気づかんかった……orz
(‘ (hoge))のような書き方の事か
エラーにする事もないと思うがな
'(a b c)と(quote (a b c))
‘(a b c)と(‘ (a b c))で一貫性がある
警告出すぐらいが丁度良い
エラーにする事もないと思うがな
'(a b c)と(quote (a b c))
‘(a b c)と(‘ (a b c))で一貫性がある
警告出すぐらいが丁度良い
書くならbackquoteだが長過ぎる
前者は構文でそれに対応した関数が存在するという一貫性の事を言っていた
前者は構文でそれに対応した関数が存在するという一貫性の事を言っていた
いやquoteは見た目は関数でも関数じゃないし
そもそも ` を ‘ と書いてるし根本的に……
そもそも ` を ‘ と書いてるし根本的に……
>>211
スペシャルフォームと言いたいんだろ?
スペシャルフォームは一部の引数を評価しないだけの、ただの関数だ
バッククオートはスマホで入力してるから何かおかしいなと思いながら変な記号を使ってしまったよ
スペシャルフォームと言いたいんだろ?
スペシャルフォームは一部の引数を評価しないだけの、ただの関数だ
バッククオートはスマホで入力してるから何かおかしいなと思いながら変な記号を使ってしまったよ
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))))
なんてわざわざ書く意味がわからん
*** 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))))
なんてわざわざ書く意味がわからん
それからスペシャルフォームは関数じゃないぞ
Lispにおいては厳密に区別されるぞ
純Lispで区別されてるぞ
スペシャルフォームを関数の一種だなんて言うと恥ずかしいぞ
Lispにおいては厳密に区別されるぞ
純Lispで区別されてるぞ
スペシャルフォームを関数の一種だなんて言うと恥ずかしいぞ
CommonLispに毒されきった身からすれば、
`a
が
(backquote a)
なんであって
`
が
backquote
に置換されるのは気持ち悪いということだろ。’aが(quote a)なんだから、一貫性という意味で(’a)も(quote a)となるようにしたら大混乱だろ。
`a
が
(backquote a)
なんであって
`
が
backquote
に置換されるのは気持ち悪いということだろ。’aが(quote a)なんだから、一貫性という意味で(’a)も(quote a)となるようにしたら大混乱だろ。
ちなみに、
(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からエラー
エラーになった事でむしろちゃんと一貫した結果になった
(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からエラー
エラーになった事でむしろちゃんと一貫した結果になった
スペシャルフォームは関数の一種ではない
あえて言うなら、関数がスペシャルフォームの一種
あえて言うなら、関数がスペシャルフォームの一種
「関数の引数はすべて評価される」と言うルールに抵触するから特殊形式は関数で無い。
盛大に恥をさらした >>217 は今頃どこで何をしているだろう……
Lispには一見Cなんかの言語の変数の様に見えるけど変数じゃ無いとか、Cの関数みたいだけと関数じゃ無いとか…
そう言うの多いよ。
そう言うの多いよ。
Emacsの仕様変更にケチつけたやつがいてな
そいつがLispの半可通だったのがケチつけた原因だったから
迷惑で恥ずかしい、いや恥知らずな奴だった
そいつがLispの半可通だったのがケチつけた原因だったから
迷惑で恥ずかしい、いや恥知らずな奴だった
symbol-functionでとりだせるんやから関数でええやん、といったらどうなん。
>>224
呼んだか?
何も間違ったこといってないぞ
defvarで定義された変数はスペシャル変数という
スペシャルフォームはスペシャルなフォームだ
他にも式(expression)とも言ったりする
(スペシャルじゃない)フォーム
expression
関数
を正確に違いを定義して教えてくれ
呼んだか?
何も間違ったこといってないぞ
defvarで定義された変数はスペシャル変数という
スペシャルフォームはスペシャルなフォームだ
他にも式(expression)とも言ったりする
(スペシャルじゃない)フォーム
expression
関数
を正確に違いを定義して教えてくれ
package-installができる前から使っていて、古いまま $HOME/lispに置いてあった
python-mode.el の中にバッククォートが使われていたのでした。なお最新verでは
そんな記述はもうないので問題なし。以上、報告終わり
C言語が一番なじんでいる身としてはLisp処理系ってどれにどっぷりつかればいいのかわからなかったけど
結局 elisp を理解するのが「自分にとって」一番役に立つと思い知らされた一件でした
python-mode.el の中にバッククォートが使われていたのでした。なお最新verでは
そんな記述はもうないので問題なし。以上、報告終わり
C言語が一番なじんでいる身としてはLisp処理系ってどれにどっぷりつかればいいのかわからなかったけど
結局 elisp を理解するのが「自分にとって」一番役に立つと思い知らされた一件でした
スペシャルフォームを関数の一部だとか関数で書いたとかいう奴は
まず defun で quote 等価の my-quote を書いて実証して欲しいな
まず defun で quote 等価の my-quote を書いて実証して欲しいな
>>232
関数がスペシャルフォームの一部というのは良い感じか
関数がスペシャルフォームの一部というのは良い感じか
例えば 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))
これは、関数がスペシャルフォームの一部である、という一例と言えなくもない
quote っぽいスペシャルフォーム my-quote が
(def-special-form my-quote (arg) arg)
みたいに定義できるとして
car っぽい関数 my-car なら cdr 部無視すればこんな感じで書ける
(def-special-form my-car (car &rest cdr) (eval car))
これは、関数がスペシャルフォームの一部である、という一例と言えなくもない
>>233
よくない感じ。スペシャルフォームはスペシャルフォームは関数じゃないというlispの文脈でつかわれるものだから。対して関数はlispじゃない文脈でつかえるから。
よくない感じ。スペシャルフォームはスペシャルフォームは関数じゃないというlispの文脈でつかわれるものだから。対して関数はlispじゃない文脈でつかえるから。
Lispの関数の話をしていたのにソース言語の関数にすりかえですか
困ったらこうくるだろうと予想してた通りだね
「俺はLispの話はしていない」ってご飯論法の仲間だよな
困ったらこうくるだろうと予想してた通りだね
「俺はLispの話はしていない」ってご飯論法の仲間だよな
初心者が Lisp の実装を勉強する場合、実装言語の関数と Lisp の関数を混同して矛盾、理解がおかしくなることは良くある。
メタ言語と対象言語の概念は区別せんとね。
メタ言語と対象言語の概念は区別せんとね。
そもそも 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 を語らないで欲しい
> 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 を語らないで欲しい
>>238
うん。そこをビシッとついてギャフンというような議論がみたい。
スペシャルフォームは関数だという主張はelispのあるべき姿というコンテキストなので、現在のelispから離れていても問題ないんだけど、主張してる方も反論してる方もさっぱり分かってない。なおかつもとのbackquote のはなしとも全然関係ない方向。
うん。そこをビシッとついてギャフンというような議論がみたい。
スペシャルフォームは関数だという主張はelispのあるべき姿というコンテキストなので、現在のelispから離れていても問題ないんだけど、主張してる方も反論してる方もさっぱり分かってない。なおかつもとのbackquote のはなしとも全然関係ない方向。
べつに関数そのものだなんて読み方は誰もしないと思うよ
なぜならbackquoteとつながってる話だから
コンテキストを意識しないとあかんよチミ
なぜならbackquoteとつながってる話だから
コンテキストを意識しないとあかんよチミ
関数とスペシャルフォームの違いという定義すら知らない「恥ずかしい人」から
Lispの関数と処理系記述言語で記述した関数を混同してごまかそうとする「恥知らず」を経て
俯瞰者視点を装って当事者じゃないふりでごまかそうとする「厚顔無恥」へランクアップ
Lispの関数と処理系記述言語で記述した関数を混同してごまかそうとする「恥知らず」を経て
俯瞰者視点を装って当事者じゃないふりでごまかそうとする「厚顔無恥」へランクアップ
“ スペシャルフォームは関数の一種だ”
このフレーズを正当化しようとし続ける姿に涙が🤣
このフレーズを正当化しようとし続ける姿に涙が🤣
>>243
その、関数とスペシャルフォームの違い、を定義してみてよ
その、関数とスペシャルフォームの違い、を定義してみてよ
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 の使い方は ? を押すと表示されるぞ
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 スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- Emacs Part 54 (97) - [92%] - 2023/1/25 17:15
- Emacs Part 51 (1005) - [92%] - 2020/3/26 18:30
- Emacs Part 50 (978) - [92%] - 2017/12/29 18:45
- Emacs Part 32 (1001) - [92%] - 2009/12/20 2:04 ○
- Emacs Part 42 (1001) - [92%] - 2013/6/9 5:15 △
- Emacs Part 53 (989) - [92%] - 2022/12/5 12:45
- Emacs Part 41 (1001) - [84%] - 2012/12/24 4:15
- Emacs part 22 (1001) - [84%] - 2008/1/18 7:47 ○
- Emacs Part 31 (1001) - [84%] - 2009/10/23 10:31 ○
- Emacs Part 33 (1001) - [84%] - 2010/3/9 20:01 ○
- Emacs Part 34 (1001) - [84%] - 2010/6/21 19:45 ○
- Emacs Part 35 (1001) - [84%] - 2010/9/19 17:01
- Emacs Part 36 (1001) - [84%] - 2011/3/1 5:02
- Emacs Part 37 (1001) - [84%] - 2011/6/20 19:47
トップメニューへ / →のくす牧場書庫について