Lisp在线运行

版本:

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
lisp 测试 发布于:2024-08-14 13:24 common lisp exercise 10.2 发布于:2024-04-27 16:53 做个小测试, 发布于:2024-03-14 09:53 桥梁安全计算lisp 发布于:2023-10-24 09:36 定义函数 newCalc,接受两个参数 x 和 y 发布于:2023-09-23 16:06 判断两数之和大于第三个数 发布于:2023-09-01 16:21 分数陈述性知识 发布于:2023-08-24 22:27 CAD面积/体积计算 发布于:2023-04-19 12:08 测试lisp语言 发布于:2023-04-10 15:03 计算list中某一元素数量 发布于:2023-02-16 11:32 LISP 初体验 发布于:2021-08-11 13:16 XY坐标标注CAD插件 发布于:2021-06-11 15:25 format t 输出语句 发布于:2020-08-10 18:21 print 输出语句 发布于:2020-08-10 18:20 write 输出语句 发布于:2020-08-10 18:16 write-line 输出语句 发布于:2020-08-10 18:14 循环输出内容 发布于:2020-08-10 18:11 [更多]
显示目录

结构



学习嵌入式的绝佳套件,esp8266开源小电视成品,比自己去买开发板+屏幕还要便宜,省去了焊接不当搞坏的风险。 蜂鸣版+触控升级仅36元,更强的硬件、价格全网最低。

点击购买 固件广场

结构

结构是用户定义的数据类型,它让用户可以合并不同种类的数据项。

结构被用于表示记录。假设要跟踪图书馆中的书籍。可能希望跟踪了解每本书的以下属性:

  • 标题 - Title
  • 作者 - Author
  • 科目 - Subject
  • 书籍编号 - Book ID

定义一个结构

LISP的defstruct宏允许定义一个抽象的记录结构。defstruct语句定义了一个新的数据类型,项目结构中不止一个成员。

讨论defstruct宏的格式,编写本书的结构的定义。可以定义本书的结构为:

(defstruct book 
title 
author 
subject 
book-id 
 )

请注意:

上述声明创建一个本书结构有四个命名组件。因此,创建的每一个本书将是这个结构的对象。

  • 它定义了一个名为book-title,book-subject,book-book-id的书籍,这将需要一个参数,书的结构,并且将返回的字段标题,作者,主题和本书的book-book-id对象。这些函数被称为接入功能。
  • 符号书成为一个数据类型,它可以使用typep谓词检查。
  • 也将命名为book-p隐函数,这是一个谓词,将为true,如果它的参数是本、书,则返回false。
  • 另一个名为make-book 隐函数将被创建,这是一种构造方法,其中,当被调用时,将创建一个数据结构具有四个组件,适于与所述接入功能的使用。
  • #S语法指的是一个结构,可以用它来读取或打印一本书的实例
  • copy-book书本参数还定义了隐函数。这需要书的对象,并创建另一个书的对象,这是第一个副本。调用此函数复印机功能。

可以使用setf改变书籍的组成结构,例如

(setf (book-book-id book3) 100)

示例

创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:


(adsbygoogle = window.adsbygoogle || []).push({});



(adsbygoogle = window.adsbygoogle || []).push({});
(defstruct book 
title 
author 
subject 
book-id 
 )
( setq book1 (make-book :title "C Programming"
 :author "Nuha Ali" 
 :subject "C-Programming Tutorial"
 :book-id "478"))
( setq book2 (make-book :title "Telecom Billing"
 :author "Zara Ali" 
 :subject "C-Programming Tutorial"
 :book-id "501")) 
(write book1)
(terpri)
(write book2)
(setq book3( copy-book book1))
(setf (book-book-id book3) 100) 
(terpri)
(write book3)

当执行代码,它返回以下结果:

#S(BOOK :TITLE "C Programming" :AUTHOR "Nuha Ali" :SUBJECT 
"C-Programming Tutorial" :BOOK-ID "478")
#S(BOOK :TITLE "Telecom Billing" :AUTHOR "Zara Ali" :
SUBJECT "C-Programming Tutorial" :BOOK-ID "501")
#S(BOOK :TITLE "C Programming" :AUTHOR "Nuha Ali" :
SUBJECT "C-Programming Tutorial" :BOOK-ID
由JSRUN为你提供的Lisp在线运行、在线编译工具
        JSRUN提供的Lisp 在线运行,Lisp 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。
yout