编程语言 Bosque 参考了 TypeScript 的语法与类型,还有 ML 和 Node/JavaScript 的语义。作者微软计算机科学家 Mark Marron 致力于消除编程过程中出现的各种复杂情况,创造出了他认为超越主流结构化程序设计的 Bosque 这一语言。
语法示例:
两数相加:
function add2(x: Int, y: Int): Int {
return x + y;
}
add2(2, 3) //5
使用 rest 参数和 lambda 进行奇数检测:
function allOdd(...args: List[Int]): Bool {
return args.all(fn(x) => x % 2 == 1);
}
allOdd(1, 3, 4) //false
Record 上批量更新属性
function update(point: {x: Int, y: Int, z: Int}, value: Int): {x: Int, y: Int, z: Int} {
return point<~(y=value, x=-point.x);
}
update(@{x=1, y=2, z=3}, 5) //@{x=-1, y=5, z=3}
参数的不可访问:
function tryGetProperty(r?: {f: Int, k: Int}): Int? {
return r?.f;
}
Sign:
function sign(x?: Int): Int {
var! y;
if(x == none || x == 0) {
y = 0;
}
else {
y = (x > 0) ? 1 : -1;
}
return y;
}
评论