学习Lisp也有一段时间了,基本在打基础,学习基本的语法,但是一直也没写个程序玩玩,当然了Helloworld 这种程序是不算了。今天写了个稍复杂的程序,运行了下,感觉不错。

我在我的Ubuntu上装了CLISP,来编译运行我的程序。先看下CLISP环境:

进入了CLISP 交互环境,就可以执行相应的指令了。如下图:

退出CLISP环境也比较简单(quit) (exit)(bye)都可以。

这是一种使用CLISP编程的路径,可是我们不能总是用交互式的编程。作为一个C 程序员,我们习惯将源码文件编译成可执行文件。我们将我们想做的事情写成文件,然后执行。LISP也是可以的。

(defun leap-year(year)

(

and (zerop (mod year 4))

(or (zerop (mod year 400))

(not (zerop (mod year 100))))

)

)

(defun month-length(year mon)

(case mon

((Jan Mar May July Aug Oct Dec) 31)

((Apr June Sept Nov) 30)

((Feb) (if ( = 1 (leap-year year)) 29 28))

(otherwise "Unknown month")

)

)

(format t "there are ~a days in 2012 Jan ~%" (month-length 2012 'Jan))

上面这段代码比较简单,定义了两个函数,一个函数判断是否是闰年,第二个函数根据月份的英文缩写,返回该月份的天数。最后一行调用了两个函数,返回2013年1月的天数。我将这一段代码保存成文件,month.lisp

clisp -c filename.lisp可以编译lisp文件,会编译出同名的fas文件 filename.lisp。 除此外,还生成了lib文件,如下图所示:

执行生成的month.fas可以执行,也需要CLISP调用。如下图所示:

我接触LISP没多久,很多东西理解的还不深,请各路高手不吝赐教。

参考文献:

1 实用Common Lisp编程

2 ANSI Common Lisp 中文翻译版

3 非交互方式运行Lisp程序

lisp如何调用linux头文件,Lisp之 程序的交互执行和非交互执行相关推荐

  1. stricmp linux 头文件,Windows下程序向Linux下移植细节

    3.2.程序的移植 进行程序移植的过程中碰到的问题较多,但大都主要集中在文件名大小写.路径分隔符.数据类型等方面. 3.2.1Linux和Windows操作系统API差异 Windows下基于MFC的 ...

  2. linux 头文件汇总

    linux头文件 头文件目录中总共有32个.h头文件.其中主目录下有13个,asm子目录中有4个,linux子目录中有10个,sys子目录中有5个.这些头文件各自的功能如下. <a.out.h& ...

  3. Linux找头文件规则,linux 头文件、库文件查找顺序

    linux 头文件.库文件查找顺序 默认分类 2009-11-14 01:24:28 阅读126 评论0 字号:大中小 linux 头文件.库文件查找顺序 2009-11-03 12:36 Inclu ...

  4. linux头文件怎么编译,microsoft编译器怎么使用Linux头文件

    microsoft编译器如何使用Linux头文件? #include #include #include #include #include #include #include #include #i ...

  5. linux 头文件卫士,条件编译,头文件,静态库,共享库与多文件编程

    原标题:条件编译,头文件,静态库,共享库与多文件编程 本文转载自嵌入式Linux中文站条件编译 条件编译即满足某些条件的时候编译某部分代码,常用于开发多个版本的程序,当满足条件A时,编译出免费版本的软 ...

  6. 嵌入式linux头文件,飞凌嵌入式知识汇092期:C工程的组织方式(头文件的功能)以及Linux下常用的头文件的作用...

    1.1每个C++/C程序通常分为两个文件.一个文件用于保存程序的声明(declaration),称为头文件.另一个文件用于保存程序的实现(implementation),称为定义(definition ...

  7. linux头文件和库在libc里,libc库和系统调用

    Linux系统调用这部分经常出现两个词:libc库和封装函数,不知道你是否清楚它们的含义? libc 1. libc概念 libc是Stantard C Library的简称,它是符合ANSI C标准 ...

  8. linux头文件 库,Linux操作系统的头文件和库文件搜索路径

    一. 头文件 1 ""中的头文件,在源文件当前目录查找 2 -I 中指定目录 -I可以在CFLAG中指定 3 gcc的环境变量 C_INCLUDE_PATH, CPLUS_INCL ...

  9. Unix/Linux头文件说明

    ISO C 标准头文件 Header FreeBSD 5.2.1 Linux 2.4.22 Mac OS X 10.3 Solaris 9 Description <assert.h> • ...

最新文章

  1. 英特尔科再奇:AI战略决定每家企业的未来胜负
  2. 数字图像处理笔记二 - 图片缩放(最近邻插值(Nearest Neighbor interpolation))
  3. 程序员生活智慧集——卓越程序员密码
  4. 谷歌大脑最新研究:不用「训练」!高斯过程「超越」随机梯度下降
  5. python中的中文乱码问题深入分析
  6. redis删除list中指定index的值
  7. 第三次spring冲刺1
  8. learning python学习小记(一)
  9. ajax的常见几种写法以及用法
  10. linux文件系统、文件系统结构、虚拟文件系统
  11. 簇的局部变量中布尔类型_java基础2(变量、常量、数据类型)
  12. 大学python笔记_Python 上手笔记
  13. 十七、MySQL触发器(创建、删除、查看)详解
  14. ServerAlias指令
  15. android studio查看应用文件,AndroidStudio里面使用openFileOutput新建的文件如何查看
  16. 5G NR的调制方式与解调算法
  17. VisualStudio2010编译出错fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 的解决方法
  18. Java实现斗地主发牌
  19. 基于ll库,使用stm32L0系列的内部基准电压来进行ad测量
  20. 第二次作业-语言和文法

热门文章

  1. 玩转 SpringBoot 2 之整合 WebSocket 篇
  2. 基于JAVA+SpringMVC+Mybatis+MYSQL的二手书交易系统
  3. Android 按钮选择状态,如何修改Android中的默认按钮状态而不影响按下和选择的状态?...
  4. python 图片拼接成固定行列
  5. bzoj1336[Balkan2002]Alien最小圆覆盖
  6. 【JAVA面试】java面试题整理(4)
  7. html中引入调用另一个公用html模板文件的方法
  8. 企业IT架构转型之道 读书笔记-1.阿里巴巴集团中台战略引发的思考
  9. python基础之五大标准数据类型
  10. 一个想法照进现实-《IT连》创业项目:万事开头难