LISP - 结构(Struct)

LISP - 结构(Struct) 首页 / LISP入门教程 / LISP - 结构(Struct)

结构是用户定义的数据类型之一,它允许您组合不同类型的数据项。

假设你想在图书馆里查询你需要借的书。

  • Title
  • Author
  • Subject
  • Book ID

定义结构

LISP中destruct宏允许您定义抽象记录结构,defstruct语句定义了一个新的数据类型,您的程序有多个属性。

要讨论Defstruct宏的格式,让我们编写Book Structure的定义,我们可以将图书结构定义为-

(defstruct book 
   title 
   author 
   subject 
   book-id 
)
  • 您可以使用setf更改书籍的组件,例如

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

结构示例

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

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/lisp/lisp-structures.html

来源:LearnFk无涯教程网

(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 100)

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

白话法律42讲 -〔周甲徳〕

Java并发编程实战 -〔王宝令〕

苏杰的产品创新课 -〔苏杰〕

RPC实战与核心原理 -〔何小锋〕

陶辉的网络协议集训班02期 -〔陶辉〕

技术面试官识人手册 -〔熊燚(四火)〕

Spring Cloud 微服务项目实战 -〔姚秋辰(姚半仙)〕

Web漏洞挖掘实战 -〔王昊天〕

Vue 3 企业级项目实战课 -〔杨文坚〕

好记忆不如烂笔头。留下您的足迹吧 :)