scheme 入门之 hello world

 按照惯例, 一切从hello world 开始.

如果你用的是drScheme的话, 有一个图形编辑, 执行的编辑器.

选择语言为standard r5r5, 输入

1
(display "Hello, World!")
2
3

RUN, 一切正如预料的, 看到输出了, 一切就这么简单.

一对括号中的算是一个list, scheme只做一个假定, list的第一个元素是操作符, 剩下的元素, 是这个操作符的参数.

其实这个写法, 应该很熟悉才对,

C的写法.

4 display("hello, world!");
5

一模一样吧. 哈哈. 到这里其实已经入门了, 如果你想写点啥, 应该已经可以了. 将来在涉及到一些华丽点的语法, 代码就更加强大了.

我们来探探scheme写法的好处, 方便解析, 没有优先级运算, 这点可以看一个稍微复杂一点的表达式..


1 (display (+ 1 (sqrt 2)))
2

改用c写出来的话, 应该是:

1 display(1+sqrt(2))
2

这个时候, 大家就可以看出来区别了, scheme版本的写法从语法上来说, 是非常的一致, 结构最整齐; 而c的语法阅读性好了, 但是结构比较复杂, 就是说计算机识别的时候比较麻烦. 语法上的扩展, 就有些困难, 这也是c++中的操作符重载, 为什么这么困难, 有很多条条框框的限制, 令很多初学者十分费解. 在scheme里面, 操作符的扩展, 重载, 就变得顺理成章, 什么都不用做, 天生就支持.

因为+ 号, 在c里面是语言级别的支持, 需要编译器来解析, 翻译成机器码. 在scheme里面, +不是语言级别的. 是语言上层的函数, 一个内建函数而已. 大家以后将会发现, scheme的关键字很少, 太少了.

所以, scheme的思维方式, 和其他的语言, 很不一样. 换一种角度来考虑问题, 也许会有一个新的天地.




阅读更多

没有更多推荐了,返回首页