Hutton's Razor 是一个简单的表达式语言,带有常量和附加:
data HR = Const Int
| HR :+: HR
eval :: HR -> Int
eval (Const n) = n
eval (e1 :+: e2) = eval e1 + eval e2
它出现在网络上的许多编程示例中,例如[1,2,3,4]。有没有人知道它最初定义的地方,也许是Graham Hutton写的一篇论文?
答案 0 :(得分:12)
我能找到的最早的提法是1998年,在Hutton的Fold and Unfold for Program Semantics的2.1节中。
答案 1 :(得分:5)
Hutton和Wright的2004年“Compiling Exceptions Correctly”描述了这样一种语言。它没有使用术语“Hutton's Razor”(我们也不期望它),但是它引入了这种最小的语言,并且有充分的动机暗示这种激烈的方法并没有考虑到现有技术。在“赫顿剃刀”的第一个造币来描述这个语言,我真的不知道......