草庐IT

java - Java 8's Optional, Scala' s Option 和 Haskell 的 Maybe 之间的主要区别是什么?

我已经阅读了一些关于Java8即将推出的Optional类型的帖子,并且我试图理解为什么人们一直认为它不如Scala的Option强大。据我所知,它有:使用Java8lambda的map和filter等高阶函数。MonadicflatMap通过getOrElse类型函数短路。我错过了什么? 最佳答案 我想到了一些可能性(OTOH,我还没有看到人们真的这么说,所以他们可能有其他意思):没有模式匹配。不等同于Scala的fold或Haskell的fromMaybe:你必须做optional.map(...).orElseGet(...)

python - 在 python 和 haskell 进程之间进行通信的 ipc 库是什么?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion我正在考虑下一个项目的总体架构。对于后端,haskell看起来非常适合,但对于前端则不然,Python会更好并且可能更容易编码。繁重的计算将在haskell中完成,结果显示在用python构建的gui中。因此,我需要选择正确的管道和正确的格式来在这两个进程之间进行通信。从python发送到haskell进程的消息将非常简单,就像一个包含少量但不同值的文档。(json可

Python 和函数式语言互操作

我目前的主要编程语言是python。它有很多我喜欢的地方,但我也喜欢函数式语言。不足以在其中完成一个完整的程序,但对于某些功能来说肯定很合适,这很适合功能模型。当然,.NET在这方面很了不起,它同时拥有ironpython和F#。但考虑到ironpython对科学python生态系统的支持在我上次检查时仍然不可靠,.NET对我来说不是一个很好的选择。我对明显缺乏促进cpython和Haskell之间互操作的工具感到有点震惊。它们都是成熟的语言,拥有庞大的社区,对我来说似乎非常匹配。他们的架构中是否有某些东西导致它们不兼容,而我缺少这些东西,或者这只是一些仍在等待发生的很棒的东西?澄清;

python - Python 和 Haskell 上的 Murmurhash 2 结果

Haskell和Python似乎不同意Murmurhash2结果。Python、Java和PHP返回相同的结果,但Haskell没有。关于Haskell上的Murmurhash2,我做错了什么吗?这是我的HaskellMurmurhash2代码:importData.Digest.Murmur32main=doprint$asWord32$hash32WithSeed1"woohoo"这是用Python编写的代码:importmurmurif__name__=="__main__":printmurmur.string_hash("woohoo",1)Python返回365085267

python - 转换以前缀表示法给出的表达式,识别公共(public)子表达式和依赖项

我在ANSI文本文件中得到了一堆前缀表示法的表达式。我想生成另一个ANSI文本文件,其中包含对这些表达式的逐步评估。例如:-+^x2^y21应该变成t1=x^2t2=y^2t3=t1+t2t4=t3-1t4istheresult我还必须识别常见的子表达式。例如给定expression_1:z=^x2expression_2:-+z^y21expression_3:-zy我必须生成一个输出,表明x出现在表达式1、2和3中(通过z)。我必须确定依赖关系:expression_1仅依赖于x,expression_2依赖于x和y,等等。原题比上面的例子更难,我无法控制输入格式,它是前缀符号,比

python - 相当于 Haskell 中的 python eval

python中有一个名为eval的函数,它接受字符串输入并对其求值。>>>x=1>>>printeval('x+1')2>>>printeval('12+32')44>>>Haskell中什么是eval函数? 最佳答案 的确,在Haskell中,就像在Java或C++或类似语言中一样,您可以调用编译器,然后动态加载代码并执行它。然而,这通常是重量级的,几乎不是人们在其他语言中使用eval()的原因。人们倾向于在一种语言中使用eval(),因为考虑到该语言的功能,对于某些类别的问题,从类似于该语言本身的程序输入构造一个字符串更容易,而

python - 简化 Monad

我正在尝试理解也许Monad但是我看到的大多数示例都使用了一些特定于语言的功能。为了确保我在概念上是正确的,我想到了编写一个通用的实现。以下是我想出的。有人能告诉我我的概念是否正确吗?有没有更好的泛化方法?deff():return2defg():return4defh():return7defi():returnNonedefbind(val,func):ifvalisNone:returnNoneelse:return(func())unit=0>>>bind(bind(bind(unit,f),i),h)#Returnsnothing>>>bind(bind(bind(unit,

python - 结合 maybe 和 seq monads : confused at the output

我正在尝试组合seq-m和error-m来对可能返回错误的事物进行列表推导。我的输出有意想不到的类型,但除此之外它实际上似乎是合理的。我在下面分解了我的代码,但这里有一个workinggist这是我的monadic业务逻辑defget_loan(name):m_qualified_amounts=(bind(get_banks(name),lambdabank:bind(get_accounts(bank,name),lambdaaccount:bind(get_balance(bank,account),lambdabalance:bind(get_qualified_amount(

python - 为什么 GHC 测试套件是用 Python 而不是 Haskell 编写的?

我注意到GHC(一种广泛使用的Haskell编译器)有一个用Python编写的测试套件,而不是用Haskell编写的(正如我天真地期望的那样)。这是什么来历?用不同的语言编写测试套件有什么特别的优势吗?编辑:根据评论中的建议,我在/r/haskell中提出了这个问题.它现在生成了三个答案,我在下面引用了这些答案:tathougies说:ThetestsuitedriverseemstobewritteninPython.Pythonisagoodhigh-levelscriptinglanguage.It'slikeasking'whydoesGHCuseMakeinsteadofha

javascript - -1%7 的结果在 javascript(-1) 和 python(6) 中不同

JavaScript中的表达式-1%7给我-1作为结果。而在Python和Haskell中,我发现结果是6。谁能解释为什么两者有不同的行为?哪一个是正确的? 最佳答案 我要给出一个稍微不同的答案。正如其他人所说,函数可以执行您定义它们的任何操作和m-x=-xmodm。作为前奏,我会注意到Haskell有两个“mod”函数,mod和rem,它们在这方面有所不同。您可以证明mod在数学上更可取。rem对应于您在x86处理器上获得的内容。事实上,还有第三种,欧几里德的,它可能更好,如RaymondBoute在TheEuclideanDef