Lisp-01: 相关开发环境配置部署
Common Lisp 学习笔记系列01
要学一门编程语言,首先需要将语言的环境配置好。如果想要个直接上手的环境,感谢日本的大神 Shirakumo,打造了一个 Common Lisp 的 IDE -- Portacle ,选择下载相对应的版本。然后只要了解下 quicklisp 的操作就好。从体验来看,Windows 使用 portacle 很方便,类 unix 的系统的话还是推荐自己配置。此外, The Common Lisp Cookbook 中也有介绍使用 Roswell 和 Docker 来搭建 Common Lisp 的环境,有兴趣的可以去尝试下,反正我是懒的去弄了。
安装解释器(implementation)
Ubuntu/Debian
sudo apt-get install -y sbcl
Mac OS
brew install sbcl
CentOS/Fedora
sudo yum install -y sbcl
其他各版本的解释器,请参考:Wikipedia's list of implementations
安装 quicklisp
获取
curl -O https://beta.quicklisp.org/quicklisp.lisp
加载
sbcl --load quicklisp.lisp
安装
(quicklisp-quickstart:install)
默认安装路径为
~/quicklisp,当然,也可可以指定 quicklisp 的安装目录,通过使用:path关键字,如我自己不想让该目录显示出来,将目录的名字最前面加个点.,就像这样:(quicklisp-quickstart:install :path "~/.quicklisp")
配置
在执行完
install后,运行(ql:add-to-init-file)
程序将会自动创建
~/.sbclrc并将以下内容写入文件中:#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
(user-homedir-pathname))))
(when (probe-file quicklisp-init)
(load quicklisp-init)))
其中
merge-pathnames后面接的是quicklisp安装路径加setup.lisp。
如果不想默认加载quicklisp的话,可以不设置,使用quicklisp时需手动加载setup.lisp。
quicklisp 用法:
加载库
(ql:quickload "package-name")
卸载库
(ql:uninstall "package-name")
查询库
(ql:system-apropos "package-name")
更新
(ql:update-dist "quicklisp")
查看依赖关系
(ql:who-depends-on "package-name")
默认项目目录(本地的项目库目录)
~/common-lisp/
~/.local/share/common-lisp/source
~/quicklisp/local-projects
查看默认的目录
(asdf/source-registry:default-user-source-registry)
asdf:*central-registry*
添加项目目录
(push #p"/path/to/my-project/" asdf:*central-registry*)
(ql:quickload "my-project")
Common Lisp 项目
使用
cl-project包快速创建(ql:quickload "cl-project")
(cl-project:make-project #P"/path-to-project/project-name")
执行后,会在相对应的目录下生成以下项目文件
|-- my-project.asd
|-- my-project-test.asd
|-- README.markdown
|-- README.org
|-- src
| `-- my-project.lisp
`-- tests
`-- my-project.lisp
导入项目
将项目放入到 quicklisp 默认项目目录中,或是将项目路径添加到
asdf:*central-registry*变量中。
Reference:
Lisp-01: 相关开发环境配置部署的更多相关文章
- Storm开发——环境配置部署
配置开发环境:http://storm.apache.org/releases/current/Setting-up-development-environment.html 开发环境定义: Stor ...
- Android Studio开发环境配置以及相关说明
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这里简单记录下在开发的时候使用的Android Studio开发环境版本以及相关注意事项. 一般来讲,每隔一段时间就要检查下Andr ...
- Fedora和Ubuntu下安装OpenGL开发环境配置
Fedora下OpenGl开发环境配置 开发OpenGL工程需要3个库文件和对应的头文件: libglut.so,libGLU.so,libGL.so, gl.h ,glu.h, glut.h 这些库 ...
- XE4 IOS开发环境配置
l 配置IOS的安装开发环境 使用RAD XE4开发IOS程序,一台MAC是必须的(也可以用虚拟机), MAC上需要安装Xcode, 独立版本的Commnand Line Tools 以及RAD的pa ...
- Linux 桌面玩家指南:18. 使用 Docker 隔离自己的开发环境和部署环境
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- 基于webpack4的react开发环境配置
一.基础配置 1.init项目 mkdir react-webpack4-cook cd react-webpack4-cook mkdir src mkdir dist npm init -y 复制 ...
- Ubuntu开发环境配置
主要是: 源的更新 安装vim编辑器 远程登录xrdp相关配置 synergy symless键鼠共享配置 对新买的硬盘进行格式化和分区 vsftp环境搭建 gcc开发环境配置 qt5开发环境配置 m ...
- Win8.1+VS2013+WDK8.1+VirtualBox or VMware 驱动开发环境配置
https://blog.csdn.net/charlessimonyi/article/details/50904956 Win8.1+VS2013+WDK8.1+VirtualBox or VMw ...
- XMPP开发环境配置
首先配置XMPP开发环境配置需要的软件 先安装xampp-osx-1.8.3-5-installer.dmg 安装成功后launchpad里会多出一个XAMPP(其他),点开里面的manager-os ...
随机推荐
- 2018-05-04 圣杯布局 and 双飞翼布局,display:flex
看到一个神奇的布局,啥都不说了 直接贴代码 要让main在中间,left在左边,可以通过Flex容器下的项目的属性“order”属性来设置:对于order属性:定义项目的排列顺序,越小越靠前,默认为0 ...
- jquery 获取css3 transform 值
最近写了个旋转,有要求获取transform值.当看到console.log($("#id").css("transform"))的值的时候,我的内心是崩溃的 ...
- koa进阶史(二)
之前想着放弃CAS的验证吧,但是又去请教了一个大牛,了解到sf公司的CAS验证校验的参数不是sessionId而是另外两个,后登陆sit环境偷了两个参数后,后台接口成功返回200.然后node层也就能 ...
- 10个机器学习人工智能开发框架和AI库(优缺点对比表)/贪心学院
概述 通过本文我们来一起看一些用于人工智能的高质量AI库,它们的优点和缺点,以及它们的一些特点. 人工智能(AI)已经存在很长时间了.然而,由于这一领域的巨大进步,近年来它已成为一个流行语.人工智能曾 ...
- Core + Vue 后台管理基础框架3——后端授权
1.前言 但凡业务系统,授权是绕不开的一环.见过太多只在前端做菜单及按钮显隐控制,但后端裸奔的,觉着前端看不到,系统就安全,掩耳盗铃也好,自欺欺人也罢,这里不做评论.在.NET CORE中,也见过不少 ...
- swoole模块的编译安装:php编译安装swoole模块的代码
本篇文章给大家带来的内容是关于swoole模块的编译安装:php编译安装swoole模块的代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.下载swoole 1 wget ht ...
- 新手学黑客攻防-黑客攻击电脑方式和认识IP地址
听说过黑客,没见过黑客,从最基础的开始学习,让我能在互联网中保护自己的隐私安全和信息安全. 黑客攻击电脑方式 黑客攻击的方式多种多样,但常见的只有以下几种,基本上每个黑客都会用到: 网络报文嗅探 网络 ...
- ReentrantReadWriteLock 源码分析以及 AQS 共享锁 (二)
前言 上一篇讲解了 AQS 的独占锁部分(参看:ReentrantLock 源码分析以及 AQS (一)),这一篇将介绍 AQS 的共享锁,以及基于共享锁实现读写锁分离的 ReentrantReadW ...
- 谈谈MySQL数据库索引
在分析MySQL数据库索引之前,很多小伙伴对数据结构中的树理解不够深刻.因此我们由浅入深一步步探讨树的演进过程,再一步步引出MySQL数据库索引底层数据结构. 一.二叉树 二叉查找树也称为有序二叉查找 ...
- 2016 Multi-University Training Contest 4 T9
http://acm.hdu.edu.cn/showproblem.php?pid=5772 最大权闭合子图. 得到价值w[i][j]的条件是选了i,j这两个位置的字符.选择位置的i字符花费为 第一次 ...