Discussion:
[Lisp-cn] 有没有函数或者宏可以判断一个 form 是否是 setfable place ?
freegih
2014-09-10 07:19:53 UTC
Permalink
比劂对象赋倌
(setf (obj-attr obj) value)
有没有办法对任意 form(func args..) 刀断其是吊可以 setf ?
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
Xiaofeng Yang
2014-09-11 04:30:07 UTC
Permalink
这䞪比蟃麻烊SETF的机制盞圓倍杂并非是简单的查扟盞应的展匀凜数之类的就胜刀断的。我来列䞀列盞关的几种place䜠诎的form其实这里是叫place劂果䜠芁真的了解SETF的话请䞍芁止步于歀还有埈倚䞜西可以对䜠提出的(setf
(func args ...) ...)这种圢匏造成圱响。


​銖先䜠芁确定是(func args....)这种情况实际䞊我猜䜠的意思是单独的时候func可以是䞀䞪凜数比方诎(SETF (VALUES
...本身有䞀䞪叫VALUES的凜数䜆是甚到SETF里面来了以后VALUES就变成䞀䞪ACCESSOR了SETF还有埈倚种䞍同的情况。


对应于(func args....)的几种情况

* Function Call Forms as Places

䞍倚诎看这里http://www.lispworks.com/documentation/HyperSpec/Body/05_abb.htm


* VALUES, APPLY 同样圚这里可甚䞍过被特殊倄理成单独的place类型


* 这䞀䞪提到的内容也和䜠有关
http://www.lispworks.com/documentation/HyperSpec/Body/05_abf.htm
http://www.lispworks.com/documentation/HyperSpec/Body/05_abi.htm














Best regards,
Xiaofeng Yang
Post by freegih
比劂对象赋倌
(setf (obj-attr obj) value)
有没有办法对任意 form(func args..) 刀断其是吊可以 setf ?
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
freegih
2014-09-11 04:58:50 UTC
Permalink
嗯setf 确实埈神奇。
谢谢这䞪铟接。之前还没看到http://www.lispworks.com/documentation/HyperSpec/Body/05_abb.htm
我想芁的可以这么讲 (is-place-p (func place ...)) 劂果真那就 (setf (func place ...))
䞍过这䞪纯属臆想䞍知道实际䞊䌚䞍䌚有这样的需求。
这䞪比蟃麻烊SETF的机制盞圓倍杂并非是简单的查扟盞应的展匀凜数之类的就胜刀断的。我来列䞀列盞关的几种place䜠诎的form其实这里是叫place劂果䜠芁真的了解SETF的话请䞍芁止步于歀还有埈倚䞜西可以对䜠提出的(setf (func args ...) ...)这种圢匏造成圱响。
​銖先䜠芁确定是(func args....)这种情况实际䞊我猜䜠的意思是单独的时候func可以是䞀䞪凜数比方诎(SETF (VALUES ...本身有䞀䞪叫VALUES的凜数䜆是甚到SETF里面来了以后VALUES就变成䞀䞪ACCESSOR了SETF还有埈倚种䞍同的情况。
对应于(func args....)的几种情况
* Function Call Forms as Places
䞍倚诎看这里http://www.lispworks.com/documentation/HyperSpec/Body/05_abb.htm
* VALUES, APPLY 同样圚这里可甚䞍过被特殊倄理成单独的place类型
* 这䞀䞪提到的内容也和䜠有关
http://www.lispworks.com/documentation/HyperSpec/Body/05_abf.htm
http://www.lispworks.com/documentation/HyperSpec/Body/05_abi.htm
Best regards,
Xiaofeng Yang
比劂对象赋倌
(setf (obj-attr obj) value)
有没有办法对任意 form(func args..) 刀断其是吊可以 setf ?
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
Xiaofeng Yang
2014-09-11 05:07:58 UTC
Permalink
​​
Best regards,
Xiaofeng Yang
Post by freegih
嗯setf 确实埈神奇。
是的所以䞀定䞍胜把SETF的䜿甚方法完完敎敎的告诉新手吊则他埈可胜就䞍孊了。
Post by freegih
谢谢这䞪铟接。之前还没看到
http://www.lispworks.com/documentation/HyperSpec/Body/05_abb.htm
我想芁的可以这么讲 (is-place-p (func place ...)) 劂果真那就
​​
(setf (func place ...))
即䟿劂歀䜠也​​无法保证䞀定胜让构造出来的(setf (func place ...))劂䜠所预期。。。。。还有埈倚䞜西圱响着它的行䞺

及倖由于SETF的特性并䞍保证SETF䞀定具有赋倌的功胜比劂埈可胜最后只是执行了䞀䞪什么赋倌功胜郜没有的凜数而已。
Post by freegih
䞍过这䞪纯属臆想䞍知道实际䞊䌚䞍䌚有这样的需求。
这䞪比蟃麻烊SETF的机制盞圓倍杂并非是简单的查扟盞应的展匀凜数之类的就胜刀断的。我来列䞀列盞关的几种place䜠诎的form其实这里是叫place劂果䜠芁真的了解SETF的话请䞍芁止步于歀还有埈倚䞜西可以对䜠提出的(setf
(func args ...) ...)这种圢匏造成圱响。
​銖先䜠芁确定是(func args....)这种情况实际䞊我猜䜠的意思是单独的时候func可以是䞀䞪凜数比方诎(SETF (VALUES
...本身有䞀䞪叫VALUES的凜数䜆是甚到SETF里面来了以后VALUES就变成䞀䞪ACCESSOR了SETF还有埈倚种䞍同的情况。
对应于(func args....)的几种情况
* Function Call Forms as Places
䞍倚诎看这里http://www.lispworks.com/documentation/HyperSpec/Body/05_abb.htm
* VALUES, APPLY 同样圚这里可甚䞍过被特殊倄理成单独的place类型
* 这䞀䞪提到的内容也和䜠有关
http://www.lispworks.com/documentation/HyperSpec/Body/05_abf.htm
http://www.lispworks.com/documentation/HyperSpec/Body/05_abi.htm
Best regards,
Xiaofeng Yang
Post by freegih
比劂对象赋倌
(setf (obj-attr obj) value)
有没有办法对任意 form(func args..) 刀断其是吊可以 setf ?
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞭的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
Loading...