考虑下面的JavaScript函数,它对几行代码执行计算,以清楚地表明程序员的意图:
function computation(first, second) {
const a = first * first;
const b = second - 4;
const c = a + b;
return c;
}
computation(12, 3)
//143
computation(-3, 2.6)
//7.6我尝试过用PureScript来解决这个问题,但是我似乎还没有理解一些关键的概念。文档中的do表示法示例仅涵盖绑定值为数组(https://book.purescript.org/chapter4.html#do-notation)时的do符号,但在我的示例中,我希望这些值是Int或Number类型的简单值。
虽然可以在一行中执行此计算,但它使代码更难调试,并且不会扩展到许多操作。
如何在computation中正确地编写PureScript方法以便.
如果
的可读性。
的质量。
发布于 2022-05-27 14:23:39
您不需要do符号。do表示法用于在单片中进行计算,而您的计算则是赤裸裸的。
若要在返回结果之前定义一些中间值,请使用let .. in构造:
computation first second =
let a = first * first
b = second - 4
c = a + b
in c但是如果您真的想使用do,您也可以这样做:它还支持裸计算,只是为了给您一些选择。不同之处在于,在do中,您可以在同一个级别上拥有多个let(并且它们与一个具有多个定义的let一样工作),并且不需要in。
computation first second = do
let a = first * first -- first let
b = second - 4
let c = a + b -- second let
c -- no inhttps://stackoverflow.com/questions/72406743
复制相似问题