3
投票
3答案
851 次观看

F#Asp.Net CodeDom ProviderOptions问题

我正在IIS 7上使用F#创建一个ASP.NET MVC应用程序。 当我尝试从浏览器运行它时,遇到一个包含以下内容的YSOD: [ArgumentNullException:值不能 为空。参数名称:字典] System.Collections.Generic.Dictionary2..ctor(IDictionary2 字典,IEqualityComparer`1 比较器)+12700827 System.Web.Compilation.CompilationUtil.CreateCodeDomProviderWithPropertyOptions(类...

10
投票
9答案
780 次观看

通过类型分析“编写自己”的功能程序示例

(背景:我一直在考虑进行有关F#和函数式编程的演示。根据经验,我认为模式匹配和类型推断的“哇”因素不一定足以抵消“帮助” “我的花括号和分号在哪里,我的代码将掉到边上!”的因素。这让我想到了真正的哇因素-对我来说-1)如果编译,通常意味着2)您通常可以根据类型推断实现) 有一个视频和Brian Beckman和Erik Meijer,他们提到了实现有时是如何“脱离”函数的类型签名的。我过去也曾经历过这种情况,但是无法提出一个很好的例子,足以向没有以前的功能经验的人展示。 有人能分享一个好榜样吗? (不必在F#中) 更新 如果有帮助,我认为我们需要以不同的方式思考:实际难题...

3
投票
4答案
844 次观看

左斜红黑树的F#代码优化

我一直在努力将LLRBT的C#实现移植到F#,现在我可以正常运行了。我的问题是我将如何进行优化? 我有一些想法 使用Node的专有联盟来删除对null的使用 删除getter和setter 您不能同时具有null属性和结构 完整资源可在此处找到。C#代码取自延迟的博客。 当前性能 F#逝去= 00:00:01.1379927高度:26,计数:487837 C#逝去= 00:00:00.7975849高度:26,计数:487837 module Erik let Black = true let Red = false [<AllowNullLite...

0
投票
3答案
186 次观看

如何在F#more中优化分割?

此代码将一个谓词将一个列表分为两部分,该谓词接受一个列表,并在拆分时返回false。 let split pred ys = let rec split' l r = match r with | [] -> [] | x::xs -> if pred (x::l) then x::(split' (x::l) xs) else [] let res = split' [] ys let last = ys |> Seq.skip (Seq.length res) |> Seq.toLi...

2
投票
2答案
584 次观看

使用Seq.cast的问题

使用Seq.cast似乎总是失败,即使是如下所示的简单事件: let xor c = Seq.cast c |> Seq.reduce (^^^) xor [1;3] // Works, assuming because no cast is necessary xor ['a';'b'] // Fails xor [2u] // Fails 后两个失败,且使用指定的Cast无效。我想念什么? 我正在尝试使用Seq.cast将一堆东西转换为uint16,但是由于某种原因,它总是会失败(即使我用Seq.cast<uint32>对其...

3
投票
6答案
607 次观看

在现实世界中,“面向语言的编程”与OOP / Function相比如何?

我最近开始阅读一些与F#相关的文献,涉及“现实世界的函数式编程”和“专家F#” e。g ..开始时很容易,因为我在Haskell有一定的背景,并且了解C#。但是当涉及到面向语言的编程“时,我只是不明白。-我读了一些解释,就像读一篇学术论文,每个句子都变得更加抽象和陌生。 有人对这种东西有一个简单的例子吗?如何将其与现有范例进行比较?这不只是学术上的幻想,不是吗?;) 谢谢, 希望

16
投票
2答案
1757 次观看

F#:使用INotifyPropertyChanged进行数据绑定

如何将INotifyPropertyChanged实现在F#类型中使用? 谢谢!

5
投票
1答案
2589 次观看

F#字符串模式与通配符匹配

作为项目的一部分,我分配了自己作为一种方法,以提高我对F#和函数式编程的总体了解,我试图从头开始编写字符串模式匹配算法,而不使用任何循环或变量(或正则表达式) ,或String.Replace和朋友)。因为这纯粹是一个学习项目,所以我对最好的实现方式不感兴趣,而对最好的功能性实现方式不感兴趣。 我正在尝试编写一个函数,该函数接受通配符,模式字符串和输入字符串作为参数。如果模式与输入不匹配,则函数返回None。如果模式与输入匹配,则函数返回Some(str),其中str是输入字符串中与模式字符串中可能存在的任何通配符匹配的任何部分。> 我主要在此工作,稍后我将包含代码。我编写了一...

1
投票
3答案
233 次观看

F#块参数

C#具有匿名委托。所以我可以写: public vois foo(string d, Action t){ t(); } 在红宝石中: def foo d yield end 如何在F#中执行相同的操作?首选语法为: foo "dfdfdf" { do something here } 谢谢

1
投票
1答案
409 次观看

无法使运算符重载以使用Linq表达式树

我正在从F#创建对我拥有的自定义数据类型进行操作的Linq表达式树。该类型是一个非常简单的区分联合,具有通常的算术运算符重载。但是由于某种原因,我无法创建算术linq表达式节点,因为它找不到正确的重载。是的,我发誓我之前有这个工作,但是我不知道自己做了什么改变才使它崩溃。 我将附上一个显示问题的小代码示例。以下数据类型的Addition运算符已重载。使用重载运算符的工作原理很吸引人,但是当我尝试使用Expression.Add(lhs,rhs)创建一个附加表达式树节点时,系统抛出一个异常,抱怨它找不到Add操作的重载。> 有人知道我在做什么错吗? 谢谢你, 里卡德 ope...

3
投票
2答案
2039 次观看

适用于Mac的最佳F#IDE

我试图说服我的一个朋友从OCaml切换到F#,但是他们正在Mac上进行编程。在OS X上最好的F#开发经验是什么? 通过查看关于SO的类似问题类似的问题,似乎用于MonoDevelop的F#插件是我最好的选择。有更好的选择吗?

7
投票
3答案
2763 次观看

使用MarshalAs进行P /调用签名的F#语法

我不确定语法。我正在尝试将此C#代码转换为F#。 struct LASTINPUTINFO { public uint cbSize; public uint dwTime; } public class IdleTimer { [DllImport("User32.dll")] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii); } 这是我到目前为止所拥有的。 typ...

5
投票
1答案
637 次观看

在F#中。是否可以重载抽象类型的构造函数?

如果可以,请举一个带有无参数和“ parameterfull”构造函数的类型的例子。 是您会建议使用的东西还是F#提供了其他功能更多的替代方法。如果可以,请举个例子吗?

27
投票
5答案
4007 次观看

有相当于在F#中创建C#隐式运算符吗?

在C#中,我可以将隐式运算符添加到类中,如下所示: public class MyClass { private int data; public static implicit operator MyClass(int i) { return new MyClass { data = i }; } public static implicit operator MyClass(string s) { int result; if (int.TryParse(s, out resul...

3
投票
1答案
147 次观看

这两种语法之间的区别

type IFooable = abstract Foo : int -> int type IFooable2 = abstract Foo : a : int -> int type MyClass() = interface IFooable2 with member this.Foo(b) = 7 IFooable和IFooable2有什么区别?它们相等吗? 在我的示例中,它的目的是什么?什么时候使用它?

1
投票
3答案
706 次观看

C#项目中的F#类型扩展:是否缺少System.Runtime.CompilerServices.Extension?

我正在研究F#,这非常令人着迷。我试图将此处与可选类型和C#结合使用。很有趣的事情...但是我想念一些重要的事情: #light namespace MyFSharp // C# way [<System.Runtime.CompilerServices.Extension>] module ExtensionMethods = [<System.Runtime.CompilerServices.Extension>] let Great(s : System.String) = "Great" using System; using My...

4
投票
1答案
429 次观看

如何使用F#Interactive访问私有字段/方法/属性

F#交互式是一种功能强大的开发工具,因为它允许运行WinForm或Wpf窗口 并在其中调用任意代码。 这为“先尝试后编码”方法提供了一种方法。 我经常希望明确地“打破界限”,并且 调用私有/受保护的方法 访问/更改私有字段和属性 是否有解决此问题的方法?

8
投票
5答案
11025 次观看

如何在Linux上的单声道中使用F#?

我很难弄清楚如何在Linux上使用F#-非常感谢您的帮助。

3
投票
2答案
708 次观看

F#互动开发

基于Matlab和R的背景,开发过程非常互动(选择,运行选择,修复,选择,运行选择,修复等),我试图弄清楚F#如何处理这种开发风格,在科学应用中这似乎很重要。以下是一些刚接触F#的人马上想到的事情: 选择多行可以得到与一次不同的结果。 let add x y = x + y add 4.1 2.3 同时选择两行将产生float -> float -> float,而选择第一行将导致int -> int -> int。更普遍地,使用matlab / R用户可在每条语句后而不是末尾打印输出。 阴影复制会变得很麻烦。 let file = ope...

5
投票
5答案
3974 次观看

F#:从字符串中删除前N个字符?

我正在尝试编写一些代码来删除字符串中的前N个字符。我本可以以命令式的方式完成此操作,但是我希望看到它以函数式编程的精神完成。对F#和函数式编程不熟悉,我遇到了一些麻烦...

4
投票
3答案
5714 次观看

如何在F#中打印整个列表?

当我使用Console.WriteLine打印列表时,默认情况下仅显示前三个元素。如何获取列表的全部内容?

9
投票
1答案
910 次观看

F#的通用类型定义语法

这没什么大不了的,但是F#中有什么方法可以在不调用GetGenericTypeDefinition()的情况下获得泛型类型定义?IComparable<_>是IComparable<object>(或任何推断的类型),而IComparable<>是语法错误。 VB.NET GetType(IComparable(Of )) C# typeof(IComparable<>) F# typeof<IComparable<_>>.GetGenericTypeDefinition()

4
投票
3答案
1600 次观看

测试顺序中所有项目是否相同的表达式

F#中是否有多个实例模式? 考虑我正在处理列表。我有以下模式匹配 match l with | [] | [_] -> l //if the list is empty or contains only one item, simply return it | //is there a pattern to test if all of the elements are identical? 换句话说,传递[]或[1]应该只返回列表,所以[1; 1; 1; ...]也应该返回列表,但我不知道如何对最后一个模式进行模式匹配。这可能吗?还是我可...

10
投票
5答案
5796 次观看

您在Matlab / F#/ R上进行数据分析和建模算法的经验

在使用C ++进行编码之前,我已经使用F#进行算法建模,之后又使用它来检查C ++代码的结果以及实际记录的数据。 对于事物的建模方面,它非常方便,但是对于“数据混搭”类的东西,从CSV和其他来源中提取数据,生成统计信息,绘制图表等,我的同事却无休止地挑逗我(为什么要自己编码?它内置在MatLab中”)。 我还有另一个同事向R发誓,R也有图表功能“内置”。 我知道MatLab,R和F#并非严格可比,因此我不要求“功能比较出手”。我只是想知道其他人在这种前分析和后分析场景中使用什么,以及他们对此有多满意。 (如果有人在那里将Microsoft Charts包装为F#友好的东西,让我...

1
投票
3答案
349 次观看

这是编写以下fsharp代码的更好的(功能更多的方法)吗?

我在项目中有类似这样的代码,但我意识到这不是 以实用的方式编写: let data = Array.zeroCreate(3 + (int)firmwareVersions.Count * 27) data.[0] <- 0x09uy //drcode data.[1..2] <- firmwareVersionBytes //Number of firmware versions let mutable index = 0 let loops = firmwareVersions.C...

12
投票
2答案
3441 次观看

如何从头开始编写递归下降解析器?

作为纯粹的学术练习,我从头开始编写递归下降解析器-无需使用ANTLR或lex / yacc。 我正在编写一个简单的函数,将数学表达式转换为等效的AST。我有以下内容: // grammar type expr = | Lit of float | Add of expr * expr | Mul of expr * expr | Div of expr * expr | Sub of expr * expr // tokens type tokens = | Num of float | LParen | RParen ...

0
投票
5答案
544 次观看

语言表现

“ C#vs Java性能”,“ F#vs C#性能”,“ C vs C ++”,“本地C ++ vs C#”等日常讨论总是很有趣。就像 idiom.com/~zilla/Computer/javaCbenchmark.html 或mb manageability.org/blog/archive/20030520%23p_the_problem_with_cameron 通常,语言A的专业人员证明语言A比语言B快。 在大多数情况下,该测试意味着A的专业人士确实知道如何在B中快速实现基准问题,或者B的utiliteis lyararlys没有得到完美的优化。 什么是语言表现?...

2
投票
1答案
1119 次观看

从C#调用F#函数并获取null引用异常

我正在使用安装了2009年10月F#CTP的Visual Studio 2008。 我正在尝试从C#程序中调用一些F#代码。大多数类型的F#函数似乎都可以使用,但是有些没有在F#中初始化,并且抛出NullReferenceExceptions。这样做的是闭包和部分应用的函数,即在C#中以FastFunc <>类型出现的东西。 我在做错什么或忘记了吗,或者这可能是F#或.NET的错误? 下面的代码用于演示问题。我实际上并不是在实际的应用程序中尝试使用此代码。 也可以在F#中正常运行。这是一个F#到C#的问题 F#: namespace FS mod...

2
投票
3答案
397 次观看

我应该使用继承还是接口?

两者之间有什么区别 type IFooable = interface IDisposable abstract Foo : (unit -> unit) 和 type IFooable = inherit IDisposable abstract Foo : (unit -> unit) ? 如果等效,在哪种情况下我应该使用另一个? 谢谢!

5
投票
2答案
849 次观看

如何在F#中从构造函数调用方法

我知道了这个问题,但是询问者似乎对另一个问题的回答很满意。问题(如何重载构造函数) 我有一个类,它充当可变类的高级备注,因此我可以将其从外部视为不可变的: type Wrapper(args) = let tool = new MutableTool() tool.Init(args) //<--"Unexpected identifier in definition" let lookupTable = //create lookup using tool here member this.Lookup(s) = //callers us...