蠢货别忘(一)common lisp funcall

本文详细介绍了如何在Scheme和CommonLisp中自定义cons、car和cdr函数,并提供了具体的代码示例,旨在帮助开发者理解和实现这些核心功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自定义 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值