首页 > 其他分享 >无涯教程-LISP - 函数声明

无涯教程-LISP - 函数声明

时间:2024-01-13 23:32:49浏览次数:39  
标签:教程 函数 示例 LISP defun 无涯 lisp circle rad

函数是一起执行任务的一组语句。

定义函数

名为 defun 的宏用于定义函数, defun 宏需要三个参数-

  • 函数名称
  • 函数参数
  • 函数主体

defun的语法是-

(defun name (parameter-list) "Optional documentation string." body)

让我们用简单的示例来说明这个概念。

函数 - 示例1

让我们编写一个名为 averagenum 的函数,该函数将打印四个数字的平均值,我们将这些数字作为参数发送。

创建一个名为main.lisp的新源代码文件,然后在其中键入以下代码。

(defun averagenum (n1 n2 n3 n4)
   (/( + n1 n2 n3 n4) 4)
)
(write(averagenum 10 20 30 40))

当您执行代码时,它返回以下输出-

25

函数 - 示例2

让我们定义并调用一个函数,当以圆的半径作为参数时,该函数将计算圆的面积。

创建一个名为main.lisp的新源代码文件,然后在其中键入以下代码。

(defun area-circle(rad)
   "Calculates area of a circle with given radius"
   (terpri)
   (format t "Radius: ~5f" rad)
   (format t "~%Area: ~10f" (* 3.141592 rad rad))
)
(area-circle 10)

当您执行代码时,它返回以下输出-

Radius:  10.0
Area:   314.1592

参考链接

https://www.learnfk.com/lisp/lisp-functions.html

标签:教程,函数,示例,LISP,defun,无涯,lisp,circle,rad
From: https://blog.51cto.com/u_14033984/9234126

相关文章

  • 高项改革???? 这里有最新的官方教程。 高级项目管理师
    大大咧咧,又有点后知后觉。决定软考后发现改机考了。并且是去年下半年改成机考,也就是说已经机考过一次。还好,还好,还好后知后觉的自己居然“发现”这一点。真是把自己蠢到了。。。。机考的范围应该就变大了吧,难度会不会降低呢?如果从背诵的角度看,范围变大就是难度变大。何来难度降......
  • 无涯教程-LISP - 循环语句
    在某些情况下,您需要执行一段代码次数,循环语句使我们可以多次执行一个语句或一组语句,以下是大多数编程语言中循环语句的一般形式。LISP提供以下类型的构造来处理循环需求。单击以下链接以查看其详细信息。Sr.No.Construct&描述1loop以最简单的形式,它允许您重复执行某些语......
  • 无涯教程-LISP - 条件判断
    以下是大多数编程语言中常见的典型决策结构的一般形式-LISP提供以下类型的决策构造,单击以下链接以查看其详细信息。Sr.No.Construct&描述1cond此构造用于检查多个判断操作子句。2ifif构造具有多种形式。3when如果test子句的判断输出为true,则执行test操作,否则,对后......
  • 无涯教程-LISP - 运算符
    运算符是一个符号,告诉编译器执行特定的数学或逻辑操作。LISP允许对数据进行大量操作,并由各种函数,宏和其他构造支持。允许对数据进行的操作可以归类为-算术运算比较操作逻辑运算按位运行算术运算下表显示了LISP支持的所有算术运算符。假设变量A=10,变量B=20,然后-运算符......
  • 无涯教程-LISP - 常量声明
    在LISP中,常量是在程序执行期间永不更改其值的变量,常量使用defconstant构造进行声明。以下示例显示了声明全局常量PI并随后在名为area-circle的函数中使用此值来计算圆的面积的情况。defun构造用于定义一个函数,我们将在Function一章中对其进行研究。创建一个名为main.l......
  • 无涯教程-LISP - 宏(Macros)
    宏允许您扩展标准LISP的语法。定义宏在LISP中,使用另一个名为defmacro的宏定义了一个命名宏,定义宏的语法为-(defmacromacro-name(parameter-list))"Optionaldocumentationstring."body-form宏定义由宏的名称,参数列表,可选的文档字符串和Lisp表达式主体组成。让我们编写......
  • 无涯教程-LISP - 环境变量
    Lisp执行器CLISP是用于在Windows中设置LISP的GNU通用LISP多体系结构编译器,Windows版本使用Windows下的MingW模拟Unix环境,安装程序会处理此问题,并自动将clisp添加到WindowsPATH变量。您可以从此处获取最新的WindowsCLISP-https://sourceforge.net/projects/clisp/files/late......
  • SpringCache教程
    前言极大地简化了程序员对于cache的操作流程,可以使用拒接方便的实现,支持redis,Caffeine,Memcached等不同的缓存框架。相关注解名称解释@Cacheable主要针对方法配置,能够根据方法的请求参数对其进行缓存@CacheEvict清空缓存@CachePut保证方法被调用,又希望结果......
  • 无涯教程-LISP - 简介
    Lisp(历史上拼写为LISP)是具有悠久历史的计算机编程语言家族,有独特和完全括号的前缀符号表示法。起源于公元1958年,是现今第二悠久而仍广泛使用的高端编程语言。只有FORTRAN编程语言比它更早一年。Lisp编程语族已经演变出许多种方言。现代最著名的通用编程语种是Clojure、CommonLis......
  • RUST web框架axum快速入门教程6之测试
    本文主要讨论axum的测试,axum对于测试的支持还是比较完善的,我们可以测试状态码,HTTP头信息,响应体等内容,因为框架实现的原因,其实axum很依赖tower。往期文章:https://youerning.top/post/axum/quickstart-1https://youerning.top/post/axum/quickstart-2https://youerning.top/pos......