我知道f#列表在c#List中不一样。我需要做些什么才能将c#应用程序中的整数列表传递给f#库?我希望能够在数据进入f#代码后对数据进行模式匹配。我能做些什么来将C#列表传递给F#?
7
A
回答
3
这是我最终做到的。
的FSharp代码:
let rec FindMaxInList list =
match list with
| [x] -> x
| h::t -> max h (FindMaxInList t)
| [] -> failwith "empty list"
let rec FindMax (array : ResizeArray<int>) =
let list = List.ofSeq(array)
FindMaxInList list
升C代码:
List<int> myInts = new List<int> { 5, 6, 7 };
int max = FSModule.FindMax(myInts);
0
您可以从F#项目中引用C#程序集。通过引用程序集公开您的列表。
8
您可以使用
Seq.toList : IEnumerable<'a> -> list<'a>
任何IEnumerable<'a>
seq
转换为F#列表。请注意,F#列表是不可变的;如果你想使用可变列表,你不需要做任何特殊的事情,但是你将无法使用模式匹配。或者,您可以可以定义System.Collections.Generic.List<'a>
的有效模式;这只是一个坏主意。
1
您可以传递一系列整数 - 基本上支持IEnumerable<int>
的任何东西。
相关问题
- 1. Rails:不能将变量传递给partial,我做错了什么?
- 2. 我能做些什么来解决java.lang.StringIndexOutOfBoundsException?
- 3. 我能做些什么来避免NullPointerException?
- 4. 为什么我不能将单位参数传递给F#类型?
- 5. 将int &&传递给f(int &&)
- 6. 我能做些什么 PHP
- 7. 我还能做些什么来改善这个C++代码
- 8. 将obj-c类传递给javascript不起作用。我究竟做错了什么?
- 9. 传递参数给.toString()做什么?
- 10. 将列表传递给类
- 11. 为什么我不能将两个bool值传递给std :: function?
- 12. 为什么我不能将cend()和cbegin()传递给count_if?
- 13. 为什么我不能将字符串传递给@input
- 14. 为什么我不能将数据集传递给函数?
- 15. 我们如何知道传递给UIActivityViewController的数据对象做了些什么?
- 16. 我能做些什么来获得此功能输出?
- 17. 我能做些什么来修复我的应用程序?
- 18. 我能做些什么来改善我的MVC?
- 19. 为什么我不能将Type变量传递给c#中的关键字“default”?
- 20. 将列表传递给ack的语法是什么?
- 21. 在C++中,我能做些什么来格式化我的输出?
- 22. 将值传递给XContainer.Descendants()的大括号会做什么?
- 23. 将float传递给GLSL着色器什么都不做
- 24. Codesign错误,我能做些什么?
- 25. 为什么我在DotNet的依赖地狱,我能做些什么来摆脱?
- 26. 我应该用什么来传递参数?在C#列表/数组/对象#
- 27. 将列表传递给HTML表单Python
- 28. 为什么我的代码不能传递给我的div?
- 29. 我能做些什么来追踪这个错误?
- 30. 我能做些什么来缩短这段代码?
只是想知道,但为什么没有人要编写C#的列表操作几个活跃的模式? – Juliet 2008-12-24 18:41:16