蠢货别忘(一)common lisp funcall

自定义 cons,car,cdr

 

Scheme 示例:

(define (my_cons x y)

  (lambda (z) (z x y)))

(define (my_car m)

  (m (lambda (p q) p)))

(define (my_cdr m)

  (m (lambda (p q) p)))

 

Common Lisp:

(defun my_cons (x y)

  (lambda (z) (funcall z x y)))

(defun my_ca_dr (m flag)

  (funcall m (lambda (p q)

                     (cond ((= flag 0) p)

                               ((= flag 1) q)))))

(defun my_car (m) (my_ca_dr m 0))

(defun my_cdr (m) (my_ca_dr m 1))

 

提示:

Common Lisp使用函数作为变量后,调用该变量时需要使用 funcall,(funcall 函数名 参数列表)。

 

转载于:https://www.cnblogs.com/qq1144054302/p/10633504.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值