0

cond当语句不满足其他条件时,我试图返回默认值。如何在 PicoLisp 中实现这一点?

(de fib (n)
  (cond
    ((= n 0) 0)
    ((= n 1) 1)
    (+ (fib (- n 1)) (fib (- n 2))) ) )

(prinl (fib 1)) # prints 1
(prinl (fib 5)) # prints nothing
(bye)

使用此参考代码编码的示例

(let (Foo "bar")
  (cond
    ((not Foo) "No foo for you")
    ((lst? Foo) (map 'my-list-function Foo))
    ((= Foo "bar") "Foobar")
    "Nothing is true" ) )
4

1 回答 1

1

您必须使用T全局返回默认值cond

(de fib (n)
  (cond
    ((= n 0) 0)
    ((= n 1) 1)
    (T (+ (fib (- n 1)) (fib (- n 2)))) ) )

(prinl (fib 1)) # prints 1
(prinl (fib 5)) # prints 5
(bye)
于 2021-06-07T17:37:05.277 回答