首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正负数的PureScript -正负数分裂成正负数两个数组的元组

问正负数的PureScript -正负数分裂成正负数两个数组的元组
EN

Stack Overflow用户
提问于 2022-12-01 15:17:59
回答 2查看 27关注 0票数 0

我是PureScript的新手,现在正在读一本书“函数式编程变得更容易:一步一步的指南”,但当我读到关于元组的章节时,我意识到所有这些似乎都是胡说八道。

这是不起作用的代码。

代码语言:javascript
复制
splitPosAndNeg :: Array Int -> Tuple (Array Int) (Array Int)
let Tuple pos neg = splitPosAndNeg [1, -2, 3, -4, 5, -6, -7, 8]
let split = splitPosAndNeg [1, -2, 3, -4, 5, -6, -7, 8]
  pos = fst split
  neg = snd split

有人能解释如何使用PureScript将正数和负数数组分割成两个正负数数组的一个元组吗?来自隔断的Data.Array会起作用吗?它是怎么用的?

@费奥多·索伊金,我已经试用了这本书的代码这里有分区函数。它还是不起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-12-01 16:21:55

我没有这本书,所以很难说出脱节在哪里。

但是从您发布的片段来看,似乎作者只是断言该函数存在于作用域中,而没有给出它的实现,因为它对上下文并不重要。为了阐明该函数的作用,作者给出了它的类型签名。

代码语言:javascript
复制
splitPosAndNeg :: Array Int -> Tuple (Array Int) (Array Int)

然后给出两个例子,说明如何使用这种函数的结果。第一个示例-通过模式匹配对元组构造函数:

代码语言:javascript
复制
let Tuple pos neg = splitPosAndNeg [1, -2, 3, -4, 5, -6, -7, 8]

第二个例子--通过使用fst和snd函数分别获得元组的第一和第二元素:

代码语言:javascript
复制
let split = splitPosAndNeg [1, -2, 3, -4, 5, -6, -7, 8]
    pos = fst split
    neg = snd split

(请注意,您可能在代码段中搞砸了缩进:pos和neg应该在split下对齐)

回应您的评论:

谢谢,但是代码仍然不起作用。请参考我的链接,在我的更新的帖子,我的问题以上。链接太长,无法粘贴到评论框中。

let绑定不能在顶层,它必须在函数体中。另外,您添加的函数实现类型错误。给,我帮你修好了。

票数 1
EN

Stack Overflow用户

发布于 2022-12-01 16:18:55

我刚刚从Data.Array模块中使用分区函数找到了问题的答案。

分区(_ > 0) 1,-2,3,-4,5,-6,-7,8

-{ no:-2,-4,-6,-7,是: 1,3,5,8 }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74644208

复制
相关文章

相似问题

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