看板 PLT 關於我們 聯絡資訊
請問一下common lisp的變數傳遞是用什麼方式實做的 一開始我猜是call-by-reference,可是變數在function下的操作沒有辦 法帶到上一層: > (setq s '(1 2 3 4 5)) (1 2 3 4 5) > (defun qw(x) (pop x)) QW > (pop s) 1 > s (2 3 4 5) > (qw s) 2 > s (2 3 4 5) 可是若是call-by-value也不對,因為setf在function內的操作可以帶到上 一層: > s (2 3 4 5) > (defun qw(x) (setf (rest s) nil)) QW > (qw s) NIL > s (2) 所以搞不太懂他是怎麼做的... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.232.79.153
sunneo:call by name呢 ~( ̄▽ ̄||;)~ 09/07 11:10
sunneo:他到是有點像全部當字串 用recursive.. 09/07 11:11
caml:call-by-object-reference 09/07 16:05
chengken:轉錄至看板 WhoAmI 07/24 20:38