很惭愧就是不能坚持写博客,又放自己鸽子了, 还好已经习惯了,不会陷入无尽的自责中了
作为一名码农,毕竟还是有点上进心的码农,当然希望自己的水平能不断进步,不会希望离高手的距离永远那么遥远.那么从最基础的编程语言开始
不评论哪个好哪个差,我只接触过c类的一个子集. 高手和大师说怎么也得会个五六门吧. 其实很早就想学习一门非c类语言,但一直没找到合适的选择
上周入手了一门SCIP, 之前只是对其有耳闻,被一同事看到,他去年刚啃了一遍. 他强烈推荐此书+书中的描述语言shceme.
简单介绍一下,copy过来的.
LISP(全名LISt Processor,即列表处理语言),由约翰·麦卡锡在1960年左右创造的一种基于λ演算的函数式编程语言。
Scheme 语言是 Lisp 的一个现代变种、方言,诞生于1975年,由 MIT 的 Gerald J. Sussman and Guy L. Steele Jr. 完成。与其他lisp不同的是,
scheme是可以编译成机器码的。
LISP在现在的两个主要版本就是 common lisp和shceme
LISP 是第一个函数型编程语言,区别于C/Java等命令型编程语言。比LISP还早的高级语言只有FORTRAN
http://blog.chinaunix.net/uid-20476222-id-1942568.html
约翰·麦卡锡 简介 说明下很崇拜他的第二任妻子,那才叫生活
别外说明下 关于LISP现在已经并不是最适合人工智能的语言之一了, 因为人工智本身发生了点变化.具体可参考文章
这家伙文章很不错, 尤其 编程珠玑番外篇 系列, 学到不少东西.
scheme也分出了一些版本,因为学习它的目的暂时只是想拓展下思维,了解下c以外的世界,因此版本选择比较随意.
linux下GNU版本标准脚本语guile(基于scheme)是个不错的选择, cygwin下也可以使用guile.
但同事推荐我用 DrRacket, 那就它吧.
http://racket-lang.org/
下载合适的版本安装.
我在windows下安装完成后, 其中
Racket.exe 是其核心,运行就是一个命令行的版本
GRacket.exe 图形化的命令行版本 都是 Read-Eval-Print Loop (REPL)
DrRacket.exe 算是一个IDE 上面是definition area 下面是 REPL
Racket Documentation.exe 使用手册 或者通过DrRacket帮助进入
Racket Documentation.exe 使用手册 或者能过DrRacket 帮助进入
刚开始可以通过帮手中的
Tutorials-->Quick: An Introduction to Racket with Pictures
对其有个大致了解
然后可以通过
The Racket Guide 部分循序渐进 The Racket Reference是对guide的补充,很全面
Scheme是第一个使用静态而非动态变量作用域的Lisp方言
关于静态和动态变量作用域可参考LISP早期一个bug
经过这两天对DrRacket的学习总结感受就是这类语言相当灵活, 基于lisp的七大公理(wiki下LISP),可以自定义
很多其它语言里没有或者已有的功能. shceme本身甚至没有循环,就像c如果没有for while do可以
通过goto实现一样,lisp和shceme里一切都是由七大公理来实现. 其中比较重要的因素(核心)是:
递归 LISP中进行循环的形式
eval 把一个字符串当成指令在运行时求值
lambda 数学太深奥 简单理解就是 匿名函数
上面是这两天的学习,可能理解还不够透彻,相信自己这次能深入进去.