• Lisp学习笔记(一)——环境搭建


     本篇介绍Lisp开发环境的搭建。

      目录:

      1.介绍

      2.准备工作

      3.搭建环境

      4.Hello Lisp

      5.参考资料

    1.介绍

      LISP是一种通用高级计算机程序语言,长期以来垄断人工智能领域的应用。LISP作为因应人工智能而设计的语言,是第一个函数式程序设计语言,有别于C、Fortran等命令式程序设计语言和Java、C#等面向对象语言。Common Lisp和Scheme是Lisp家族的两大主要方言,通用性比较好,ELisp和AutoLisp只能在特定的环境下使用,所以不推荐。下面以Common Lisp为例。

    2.准备工作

      推荐emacs+slime+sbcl搭建lisp开发环境。

      1.Emacs编辑器。

      下载emacs:http://www.gnu.org/software/emacs/

      2.Slime,优秀的emacs和lisp的交互插件。

      下载slime:https://common-lisp.net/project/slime/

      3.Steel Bank Common Lisp(sbcl)是一个高性能的Common Lisp编译器。

      下载sbcl:http://www.sbcl.org/

    3.搭建环境

    3.1.Windows

      1.安装emacs和sbcl,解压slime到某一目录下。

      2.修改emacs配置文件。默认emacs配置文件在C:Users[用户名]AppDataRoaming下的.emacs。(如果此目录下没有此文件,而且windows不允许新建没有文件名的文件。所以我们需要打开emacs编辑器,在菜单栏Options下随便勾选或者取消勾选一个选项,然后点击Save Options后,.emacs文件出现在默认目录中。)

    (load-file "E:/emacs-24.5-bin-i686-mingw32/.emacs")    //填写真正的emacs配置文件的路径。也可以不写这段语句,直接写3中的配置语句。

      3.修改E:/emacs-24.5-bin-i686-mingw32/.emacs配置文件

    (add-to-list 'load-path "E:/slime-master")            //填写slime所在路径           
    (add-to-list 'load-path "C:/Steel Bank Common Lisp/1.3.0/")    //填写sbcl的安装路径(sbcl.exe路径)
    (setq inferior-lisp-program "sbcl")                 //设置lisp程序为sbcl
    (require 'slime)                            //加载slime插件
    (slime-setup)                                                  
    (require 'slime-autoloads)                     //告诉Emacs当 M-x slime或 M-x slime-connect命令第一次执行之后,Slime的其它部分会被自动加载
    (slime-setup '(slime-fancy))                    //加载slime扩展包

    3.2.MacOSX  

      1.通过Homebrew安装。

    brew install emacs emacs-slime sbcl

      2.修改~/.emacs文件,如3.1中的第三节。

    4.Hello Lisp

      打开emacs程序,输入M+X slime(M=Alt)即可进入lisp编辑界面。

      CL-USER> (+ 2 3)
      5
      CL-USER> 5;
      5
      CL-USER> "hello world"
      "hello world"

      CL-USER> (if (oddp 5 )
            'odd-number
            'even-number)
      ODD-NUMBER
      CL-USER>

    5.参考资料

      http://www.zhihu.com/question/19734980/answer/33765804

      http://my.oschina.net/klauszl/blog/263669

    知识共享许可协议
    本作品由江俊杰(Steven Jiang)创作,采用知识共享署名 4.0 国际许可协议进行许可。
  • 相关阅读:
    转--Android中调用webservice的工具类
    转--Android实现ListView过滤功能,继承于BaseAdapter,非ArrayAdapter。
    Kubernetes 1.5 配置dns
    Kubernetes 1.5安装
    HAproxy健康检查的三种方式
    某电商网站线上drbd+heartbeat+nfs配置
    sonarqube代码检测
    Sersync实时同步
    RabbitMQ配置文件
    SVNManager配置
  • 原文地址:https://www.cnblogs.com/stevenjiang/p/4958033.html
Copyright © 2020-2023  润新知