LISP 5.8-5.9 高阶函数与匿名函数

举报
wh_bn 发表于 2021/12/16 00:21:25 2021/12/16
【摘要】 Common LISP中提供了两个函数对象来调用函数 funcall 与apply 下面的函数是一个画点的函数,使用funcall函数 (defun plot (fn min max step) (loop for i from min to max by step do (loop repeat (funca...


Common LISP中提供了两个函数对象来调用函数 funcall 与apply

下面的函数是一个画点的函数,使用funcall函数

(defun plot (fn min max step)
	   (loop for i from min to max by step do 
		(loop repeat (funcall fn i) do (format t "*"))
		(format t "~%")))

CL-USER> (plot #'exp 0 4 0.5)
*
*
**
****
*******
************
********************
*********************************
******************************************************
NIL

(defun double (x) (* 2 x))

CL-USER> (plot #'double 0 10 1)

**
****
******
********
**********
************
**************
****************
******************
********************
NIL

CL-USER> (plot #'(lambda (x) (* 2 x )) 0 10 1)

**
****
******
********
**********
************
**************
****************
******************
********************
NIL


文章来源: blog.csdn.net,作者:fengda2870,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/fengda2870/article/details/9087977

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。