现在的位置: 首页 > 综合 > 正文

开始学习一门新语言 scheme

2018年01月24日 ⁄ 综合 ⁄ 共 1527字 ⁄ 字号 评论关闭

很惭愧就是不能坚持写博客,又放自己鸽子了, 还好已经习惯了,不会陷入无尽的自责中了

作为一名码农,毕竟还是有点上进心的码农,当然希望自己的水平能不断进步,不会希望离高手的距离永远那么遥远.那么从最基础的编程语言开始
不评论哪个好哪个差,我只接触过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现在已经并不是最适合人工智能的语言之一了, 因为人工智本身发生了点变化.具体可参考文章

编程珠玑番外篇-I. 高级语言是怎么来的-5

这家伙文章很不错, 尤其
编程珠玑番外篇 系列, 学到不少东西.

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

SCHEME 语言是怎么来的 -1


经过这两天对DrRacket的学习总结感受就是这类语言相当灵活, 基于lisp的七大公理(wiki下LISP),可以自定义

很多其它语言里没有或者已有的功能. shceme本身甚至没有循环,就像c如果没有for while do可以

通过goto实现一样,lisp和shceme里一切都是由七大公理来实现. 其中比较重要的因素(核心)是:

递归 LISP中进行循环的形式

eval 把一个字符串当成指令在运行时求值

lambda 数学太深奥 简单理解就是 匿名函数


上面是这两天的学习,可能理解还不够透彻,相信自己这次能深入进去.

抱歉!评论已关闭.