不到60行代码,用Racket实现wc命令
Racket语言开发命令行程序十分简单,而且支持跨平台编译,我们可以用它来开发各种方便的工具程序。下面实现了一个完整的wc程序,只需50多行代码就完成了。 ...
Racket语言开发命令行程序十分简单,而且支持跨平台编译,我们可以用它来开发各种方便的工具程序。下面实现了一个完整的wc程序,只需50多行代码就完成了。 ...
Racket和Chez Scheme一样都有time函数,用来打印函数的执行时间,所不同的地方在于,Chez Scheme的time函数会把分配的字节数也显示出来,这对于我们调试和优化代码很有帮助,不过Matthew Flatt并没有打算将Racket的time函数添加这一功能,尽管如此,Matthew Flatt提供了一个思路,只是稍微麻烦一些。 ...
Threads 创建一个新线程: (thread (lambda() (displayln "This is a new thread"))) 休眠线程并且杀掉: (define worker (thread (lambda () (let loop () (displayln "Working...") (sleep 0.2) (loop))))) (sleep 2.5) (kill-thread worker) 如果主线程退出或者被杀掉,其子线程也面临着退出, 可以利用therad-wait来等待其他线程执行完成. ...
模块基础 一个模块可以被另一个模块使用,但是模块内部的变量不能直接修改,即set! 通常,每个Racket模块驻留在自己的文件中,换句话说,可以认为一个.rkt 文件里的内容属于某一个模块,模块名就是文件名。 ...