假设我们有一门只能使用Lambda演算的语言,它的计算能力有多强?

要讨论这个问题,让我们先从定义自然数开始。

阅读全文 »

打开App Store,进入财经类,可以看到琳琅满目的软件。仔细观察可以发现这些软件可以从价格上分为两类,一类是免费~$3/¥18的低价区,另一类则是动辄$25的高价软件。按照我个人的理解,低价区的软件可以被称为“记账”软件,而高价区的则是正统的“理财”软件。

今天我要介绍的就是这款标价$60、美国区五星好评的YNAB(You Need A Budget)。

YNAB

阅读全文 »

一直想要一个Mac下的类平铺式窗口管理器,使用过divvy,但是使用鼠标的时候手在鼠标和键盘之间来回移动很麻烦,于是放弃了。。之前还在用Macbook Pro 17的时候试过一段时间的slate,不过换了rMBP 13以后,总是觉得屏幕小,所以对平铺式的窗口管理器的需求也减弱了。而且利用bettertouchtool的window snapping功能也能满足我的需要,所以有一段时间没用了。

今天正好看到有人提起,打开试了一下,就萌生了写篇介绍的想法。

阅读全文 »

Warning: OS X Only

作为一个轻微强迫症患者,我总是很在意时间。小到时分秒,大到年月日,我总是希望能够将它们一手掌握。对于年月日这种度量单位的时间,最好的管理工具就是日历。

今天我要推荐下面三个App:

  1. calendar
  2. fantastical
  3. blotter
阅读全文 »

ML-Yacc是Yacc的ML语言实现。

yacc(Yet Another Compiler Compiler),是Unix/Linux上一个用来生成编译器的编译器(编译器代码生成器)。yacc生成的编译器主要是用C语言写成的语法解析器(Parser),需要与词法解析器Lex一起使用,再把两部份产生出来的C程序一并编译。yacc本来只在Unix系统上才有,但现时已普遍移植往Windows及其他平台。

阅读全文 »

ML-Lex是Lex的ML语言实现。

在我使用的SML/NJ中,已经包含了ML-Lex。你可以通过链接下载符合你需要的SML/NJ版本。

ML-Lex是Lex的ML语言实现,所以它的用法与Lex类似:你需要完成一个.lex文件,然后运行lex,这样就能得到文件的词法序列。

阅读全文 »

接上

####2.2 返回值
函数调用、赋值、if-thenwhilebreak语句没有返回值,有些情况下,if-thenelse语句也没有返回值。在inend之间为空的let表达式也没有返回值。没有返回值的语句不允许出现在需要有值的语句中,如(a := b) + c,为非法语句。

零个或多个括号组成的由分号分割表达式如(a := 3; b := a),将会按照次序求值,并且返回最后一个表达式的值。如果存在的话,一对空括号是允许的,这将没有返回值。

阅读全文 »