回答

0

我不能说我见过这是一个有效的表达。 12必须被定义为一种类型。我们假设12是一个整数。一个整数类型只知道它是一个整数,而在大多数语言中,整数的函数/方法都是内置的。为了使它成为一个有效的表达式,您需要定义一个权重类型,并在该对象内定义转换方法或使用转换方法继承子类型。

0

你可以在Ruby中做它,因为它是语法糖。

其实有一个红宝石宝石 - alchemist - 你应该检查出来。 例如,你可以写: 10.miles.to.meters

1

不完全是在语法,但你可能想看看弗林克:https://frinklang.org

弗林克语法类似于谷歌计算器或Wolfram Alpha的,但不完全一样。鉴于Google和Wolfram Alpha使用in关键字触发单位转换,Frink使用->运算符。所以在弗林克,以下是有效的源代码:

// Calculate length of Wifi antenna: 
    lightspeed/(2.4GHz)/4 -> inches 

正如我提到的,这个语法类似于谷歌。作为参考,Google语法中的相同计算是speed of light/2.4GHz/4 in inches。 Frink早于均为谷歌计算器和Wolfram Alpha。在21世纪初,我第一次意识到了皱褶。

Frink是单元感知的。即使该单位只是“标量”(没有单位),frink中的数字也总是有单位。因此,要声明一个变量,它是12磅,你会怎么做:

var x = 12 pounds 

要转换,你会怎么做:

x -> kg 

或者你可以简单地写表达式:

12 pounds -> kg 
1

在Smalltalk中,您可以表示为

12 pounds inKilograms 

但是请注意,它是由您编写的消息poundsinKilograms(也有类似的东西也有库)。但关键是上述表达式在Smalltalk中是完全有效的(即使这些消息不存在)。