Questions tagged «f#»

F#是.NET的简洁,表达性强,高效的功能和面向对象的语言,可帮助您编写简单的代码来解决复杂的问题。

4
在F#中使用`inline`
inline在我看来,F#中的关键字的用途与我在C中所使用的关键字有所不同。例如,它似乎影响一个函数的类型(“静态解析的类型参数是什么”?不是所有F#类型吗?静态解决?) 什么时候应该使用inline函数?
71 f#  types  inline 

11
应用风格的实际用途是什么?
我是Scala程序员,现在正在学习Haskell。很容易找到面向对象概念的实际用例和现实示例,例如装饰器,策略模式等。书和互连网充满了它。 我意识到功能性概念并非如此。恰当的例子:应用剂。 我正在努力为应用程序找到实际的用例。几乎所有的教程和书籍的我所遇到到目前为止提供的示例[]和Maybe。我希望应用程序能够比FP更加适用,因为他们在FP社区中得到了所有关注。 我认为我理解了应用程序的概念基础(也许我错了),并且我一直在等待启蒙的时刻。但这似乎没有发生。从来没有在编程时,我有一阵子会高兴地喊着:“尤里卡!我可以在这里使用应用程序!” (同样,for[]和除外Maybe)。 有人可以指导我如何在日常编程中使用应用程序吗?如何开始发现图案?谢谢!

3
C#是否(或将包括)副作用验证功能?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3个月前关闭。 改善这个问题 我知道C#得到了很多并行编程支持,但是AFAIK仍然没有用于副作用验证的结构,对吗? 我认为现在已经布局C#更加棘手。但是有计划将其纳入其中吗?还是F#是唯一具有副作用验证构造的.NET语言?

2
F#List.map是否等效于C#?
C#中有与F#的List.map函数等效的功能吗?即对列表中的每个元素应用一个函数,并返回包含结果的新列表。 就像是: public static IEnumerable<TResult> Map<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> funky) { foreach (TSource element in source) yield return funky.Invoke(element); } 是否已经有内置方式,还是应该只编写自定义扩展名?
70 c#  .net  linq  f# 

2
将选项类型列表压缩为仅包含非不包含元素的最佳方法?
我出乎意料地遇到麻烦,从“选项”列表转到仅包含“某些”元素的列表。 我最初的尝试是: let ga = List.filter (fun xx -> match xx with | Some(g) -> true | None -> false) gao 但是,当然,此结果类型仍然是“选项列表”。我不知道如何使用List.map来压缩它,因为您必须在match语句中处理所有情况。我有一个丑陋的解决方案,但我想知道是否还有更好的方法。 丑陋: let rec gOptRemove gdec gacc = match gdec with | head :: tail -> match head with | Some(a) -> gOptRemove tail (a :: gacc) | None …


30
方便的F#代码段[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 关于F#/功能片段,已经有两个 问题。 但是,我在这里寻找的是有用的代码片段,一些可重用的“帮助程序”功能。或是您永远不会记得的晦涩但精巧的模式。 就像是: open System.IO let rec visitor dir filter= seq { yield! Directory.GetFiles(dir, filter) for subdir in Directory.GetDirectories(dir) do yield! visitor subdir filter} 我想将其作为一种方便的参考页。因此,没有正确的答案,但希望有很多好的答案。 编辑Tomas Petricek创建了一个专门用于F#代码段的网站http://fssnip.net/。

5
为什么F#的类型推断如此反复无常?
F#编译器似乎以(相当)严格的从上到下,从左到右的方式执行类型推断。这意味着您必须做一些事情,例如将所有定义放到使用之前,文件编译的顺序很重要,并且您往往需要重新整理内容(通过|>或通过您拥有的东西),以避免使用显式的类型注释。 使它更加灵活有多难,并且计划在F#的未来版本中使用它吗?显然,这是可以做到的,因为Haskell(例如)在推理能力相当强的情况下没有这种限制。导致此问题的F#的设计或意识形态与生俱来有什么不同?

2
总结F#中任意级别的嵌套的列表
我正在尝试创建一个F#函数,该函数将返回int任意嵌套的s 列表的总和。就是 但是对于工作list<int>,一list<list<int>>和a list<list<list<list<list<list<int>>>>>>。 在Haskell中,我将编写如下内容: class HasSum a where getSum :: a -> Integer instance HasSum Integer where getSum = id instance HasSum a => HasSum [a] where getSum = sum . map getSum 这会让我做: list :: a -> [a] list = replicate 6 nestedList :: [[[[[[[[[[Integer]]]]]]]]]] nestedList = list …
10 haskell  f# 

1
为什么在F#中有这么多针对不同类型的`map`函数
我正在学习F#。我从Haskell开始FP,对此感到很好奇。 由于F#是.NET语言,因此Mappable像haskell Functor类型类那样声明接口似乎更合理。 但是,如上图所示,F#函数是单独实现的。这种设计的设计目的是什么?对我来说,Mappable.map为每种数据类型引入和实现此方法将更为方便。
9 .net  f# 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.