lisp-lambda函数

lisp中的lambda表达式,显然和python中的很相似。
参照《实用common lisp编程》:

1
2
3
4
5
6
7
8
;按照 min max, 步长step为参数的fn计算的长度输出 *
(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 "~%")))

(plot #'exp 0 4 1/2);
(plot #'(lambda (x) (* 2 x)) 0 10 1);

输出:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
*
**
***
*****
********
*************
*********************
**********************************
*******************************************************

**
****
******
********
**********
************
**************
****************
******************
********************

#’为lisp语言的语法糖,展开表示为function。后者将会把一个函数生成为一个函数对象,后者可以通过funcall调用。
interesting。

Licensed under CC BY-NC-SA 4.0
Hello, World!
使用 Hugo 构建
主题 StackJimmy 设计