Emacs Part 54 (849レス)
Emacs Part 54 http://mevius.5ch.net/test/read.cgi/unix/1669946913/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
19: 名無しさん@お腹いっぱい。 [] 2022/12/10(土) 23:33:02.45 うーん多分それ先頭の#'全く場違いなんじゃね? それシンボルのfunctionPartにアクセスするfunctionというかaliasというかsyntax sugarというべきかのものだしquoteされてたらそもそもなんも意味をなさん quote内部のpartial evalみたいのは先頭をbackquoteにして`(sym1 sym2 ,evaled)みたいに先頭にcommaを付記する defmacroとかのときによく使う手法だな。まぁ、俺はlispyじゃないと思うからあんま好きじゃないけど 単純に(list (cons 'someone 'something) (cons 'anyone (lambda (x) (some-over x))))みたいに書くか `((someone . something) (anyone . ,(lambda (x) (some-over x))とかじゃね(´・ω・`) http://mevius.5ch.net/test/read.cgi/unix/1669946913/19
23: 18 [sage] 2022/12/11(日) 01:24:43.39 >>19 >>22 何となく引っかかっていたところがちょっとわかりかけました。 lambda式が評価せずそのまま飲み込んで関数として定義されていないことが、 関数名のシンボルを要求する文脈ではエラーになると。 ではつまり関数として定義してしまうしかないということですかね? http://mevius.5ch.net/test/read.cgi/unix/1669946913/23
25: 名無しさん@お腹いっぱい。 [sage] 2022/12/11(日) 09:13:24.81 >>23 文脈と書いたのは>>18の#'(の部分が評価されない文脈だから。なぜなら'(で囲まれてる中だからね。 #'(lambda () ...)は(function (lambda () ...)の略記だから(ここが分かってない?) '(の中ではそのまま一つ目の要素がシンボルfunctionで二つ目の要素が(lambda~のリストになってしまう。そしてそれはfuncall出来ない。例:(funcall '(function (lambda () 123))) 解決策は'(を使わずリストを組み立てることで、>>19や>>24が言うように(listやバッククォートでリストを組み立てること。シンボルだけで無く、(functionで囲まれていない)lambda(やそれを評価すると出来るclosure)も問題なく使える。 まあdefunして良いならそれでもOK。 http://mevius.5ch.net/test/read.cgi/unix/1669946913/25
30: 18 [sage] 2022/12/11(日) 17:51:47.16 むしろその場合はこうするだけでいいんですね。 (setq smart-tab-completion-functions-alist '((emacs-lisp-mode . lisp-complete-symbol) (lisp-interaction-mode . lisp-complete-symbol) (text-mode . (lambda () (dabbrev-expand nil))))) >>19 > うーん多分それ先頭の#'全く場違いなんじゃね? そもそも最初に指摘されていたこの点がまずかったと。 http://mevius.5ch.net/test/read.cgi/unix/1669946913/30
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.023s