首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PureScript -简单的多行计算

PureScript -简单的多行计算
EN

Stack Overflow用户
提问于 2022-05-27 14:11:29
回答 1查看 25关注 0票数 1

考虑下面的JavaScript函数,它对几行代码执行计算,以清楚地表明程序员的意图:

代码语言: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方法以便.

如果

  1. 涉及1000个中间步骤,而不是3个,代码将不会受到过多缩进的影响,但将尽可能具有

的可读性。

  1. 计算的每一步都在自己的行上,例如,代码可以由主管逐行检查,以获得

的质量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-27 14:23:39

您不需要do符号。do表示法用于在单片中进行计算,而您的计算则是赤裸裸的。

若要在返回结果之前定义一些中间值,请使用let .. in构造:

代码语言:javascript
复制
computation first second =
  let a = first * first
      b = second - 4
      c = a + b
  in c

但是如果您真的想使用do,您也可以这样做:它还支持裸计算,只是为了给您一些选择。不同之处在于,在do中,您可以在同一个级别上拥有多个let(并且它们与一个具有多个定义的let一样工作),并且不需要in

代码语言:javascript
复制
computation first second = do
  let a = first * first -- first let
      b = second - 4
  let c = a + b         -- second let
  c                     -- no in
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72406743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档