【发布时间】:2016-02-02 07:27:28
【问题描述】:
例如 对于 1 到 10 之间的整数,选择 3 个数字:
1. Sum of these 3 numbers equals to 24
2. These 3 numbers could build a right triangle.
如何使用 F# 得到这 3 个数字? 我知道 Haskell 这很简单:
Prelude> let rightTriangle=[(a,b,c)|c<-[1..10],a<-[1..c],b<-[1..a],a^2+b^2==c^2,a+b+c==24]
Prelude> rightTriangle
解决办法是
[(8,6,10)]
我不确定
F# could help to generate a Cartesian product conveniently?
F# could add different filter conditions inside one expression?
那么,如何方便地用 F# 实现呢? 谢谢。
【问题讨论】:
-
在此处查找 F# 笛卡尔积。然后使用 List.filter
-
这是一个sample code,类似于使用 FsControl 的 Haskell 解决方案。
-
另外,到底是什么问题——我们不是免费的haskell——> F#翻译服务
-
您尝试的解决方案在哪里?