小编Run*_*ine的帖子

了解Common Lisp aref行为

我不明白为什么setf不能使用函数调用返回的数组引用.在下面的例子中,为什么最终的调用会失败?

(setf arr #1a(a b c))

(defun ret-aref (a i)
    (aref a i))

(eql (ret-aref arr 0) (aref arr 0))

;succeeds
(progn
    (setf (aref arr 0) 'foo)
    arr)

;fails
(progn
    (setf (ret-aref arr 0) 'bar)
    arr)
Run Code Online (Sandbox Code Playgroud)

lisp common-lisp

4
推荐指数
1
解决办法
535
查看次数

F#使用CPS /部分应用程序的执行顺序

为什么这会先打印"DIV/0",然后再打印"2"?

let printZero = printfn "DIV/0"
let printSuccess x = printfn "%d" x

let div ifZero success x y =
    if y = 0
    then ifZero
    else x / y |> success

let printDiv = div printZero printSuccess
printDiv 8 4
printDiv 10 0
Run Code Online (Sandbox Code Playgroud)

continuations f# currying

2
推荐指数
1
解决办法
63
查看次数

标签 统计

common-lisp ×1

continuations ×1

currying ×1

f# ×1

lisp ×1