在LispWorks中进行编程15:重复操作

  • 0

在LispWorks中进行编程15:重复操作

Category:UI界面编写 Tags : 

重复操作

在本教程中,我们将展示如何执行指定次数的操作。在计算中,这被称为迭代

重复指定的次数

假设我们要编写一个函数来重复打印一个字符串固定次数。我们可以写一个递归定义来解决这个问题:

要重复打印一次字符串n次:

  • 如果n为0则什么也不做
  • 否则打印字符串,然后重复打印字符串n-1次。

这是以Lisp函数表示的:

(defun print-times (n)  (if (= 0 n) nil    (progn      (print “Hello”)      (print-times (- n 1)))))

要打印“Hello”打五次电话:

(print-times 5)

重复一系列数字

前面的示例将n的值从起始值倒计数到零。我们经常想要对一系列值执行操作; 例如,我们可能想要打印从15到20的数字的方块。这是递归定义:

要打印之间的距离,并包容性的:

  • 如果大于什么都不做
  • 否则打印字符串,然后打印之间+ 1

这是在Lisp中:

(defun print-for (from to)  (if (> from to) nil    (progn      (format t “~a^2 = ~a~%” from (* from from))      (print-for (+ from 1) to))))

最后,让我们测试一下:

CL-USER > (print-for 15 20)15^2 = 22516^2 = 25617^2 = 28918^2 = 32419^2 = 36120^2 = 400NIL

http://mip.i3geek.com

Leave a Reply

搜索

分类目录

公 告

本网站学习论坛:

www.zhlisp.com

lisp中文学习源码:

https://github.com/zhlisp/

欢迎大家来到本站,请积极评论发言;

加QQ群学习交流。