为了账号安全,请及时绑定邮箱和手机立即绑定

如何创建多变量haskell函数?

如何创建多变量haskell函数?

Qyouu 2019-12-13 09:58:17
我需要一个函数,该函数接受任意数量的参数(相同类型的所有参数),对它们执行某些操作,然后返回结果。在我的具体情况下,参数列表是不可行的。在浏览haskell库时,我看到该函数printf(来自module Text.Printf)使用了类似的技巧。不幸的是,通过查看源代码我无法理解这种魔力。有人可以解释如何实现这一目标,或者至少可以解释一些网页/论文/无论我能在哪里找到合适的描述吗?动机:我需要这个的原因确实很简单。对于学校(计算机科学课),我们需要编写一个模块,该模块能够“记录”数学表达式,将其表示为字符串(通过为自己的数据类型编写Num / Real / etc实例),然后执行各种操作就可以了。此数据类型包含变量的特殊构造函数,可以用值或指定函数替换任何值。目标之一是编写一个函数,该函数采用带有一些变量(成对的type (Char,Rational))的表达式,并计算表达式的结果。我们应该看看如何最好地表达功能的目标。(我的想法:该函数返回另一个函数,该函数接受与该函数中定义的var一样多的参数-似乎是不可能的)。
查看完整描述

3 回答

?
料青山看我应如是

TA贡献1772条经验 获得超7个赞

下面是一个执行过程的示例,sumOf 1 4 7 10 :: Integer可以提供更好的说明。


sumOf 1 4 7 10

(( \ x -> ( sumOf . (x +) . toInteger ) 1 ) 4 7 10

((sumOf . (1 + ) . toInteger) 4 ) 7 10

( sumOf 5 ) 7 10

( sumOf . (5 + ) . toInteger ) 7 10

sumOf 12 10

sumOf . (12 + ) . toInteger 10

sumof 22

id 22

22


查看完整回答
反对 回复 2019-12-13
  • 3 回答
  • 0 关注
  • 621 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信