我有一个WCF服务,它使用套接字异步,我有一些性能问题,所以我决定重构代码,我读了一些关于F#的异常和多线程的易用性的文章,等等,但我想知道使用F#parallelism我会获得更好的性能吗?并且它很容易与WCF服务兼容,我有大量的数据应该通过套接字传输(在tcp上),因此拥有良好的性能和并行算法非常重要.
让我们说我有一系列字符,我从控制台输入.如何以下列方式将它们写入二维数组:
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
或者使用列表会更好吗?
谢谢!
例如,如果我有一个cookie字符串
"lu=Rg3vHJ; Expires=Tue, 15-Jan-2013 21:47:38 GMT; Path=/; Domain=.example.com; HttpOnly"
Run Code Online (Sandbox Code Playgroud)
如何提取以下列表中的所有cookie属性:
NameValuePair // Mandatory "lu" and "Rg3vHJ"
Domain // ".example.com"
Path // "/"
Expires // "Tue, 15-Jan-2013 21:47:38 GMT"
MaxAge // Not exist in the example
Secure // Not exist
HttpOnly // Exists
Run Code Online (Sandbox Code Playgroud)
不确定"Set-Cookie"中属性的顺序是否固定.如果表达式可以按任何顺序丢失(如果除主名称/值对之外可能缺少所有其他属性),如何编写表达式?
我需要将值分配给C#struct或F#record.
struct {
KeyValuePair<string, string> NameValue, // mandatory
string Domain,
string Path,
string Expires,
string MaxAge,
bool Secure,
bool HttpOnly
}
Run Code Online (Sandbox Code Playgroud)
F#
type Cookie = {
NameValue : string * string;
Domain : string option;
Path : …Run Code Online (Sandbox Code Playgroud) 在下面的代码中,为什么printStatement调用该函数?
module Tests
let printStatement =
printfn "%s" "statement"
let functionCallingPrintStatement =
printStatement
let functionNotCallingPrintStatement =
printfn "%s" "This is a test"
Run Code Online (Sandbox Code Playgroud)
如果我打电话给functionNotCallingPrintStatement我的主程序?
open Tests
[<EntryPoint>]
let main argv =
functionNotCallingPrintStatement
0
Run Code Online (Sandbox Code Playgroud)
这是输出:
声明
这是一个测试
如果我将功能更改functionNotCallingPrintStatement为:
let functionNotCallingPrintStatement =
()
Run Code Online (Sandbox Code Playgroud)
第一个陈述被压制.
如何使用for循环填充数组?我正在尝试这样做,但我需要在声明时填充我的数组.还是我错了?
我需要用二维数组来做这个,没有必要,只有2个数组也没问题
我有一个groups类型DateTime*int*decimal*decimal list list,我试图生成一个decimal list,每个元素是内部列表中第四个元素的总和groups.我的尝试如下,
groups
|> List.map(fun x -> (List.reduce (fun acc elem -> elem + acc ))
Run Code Online (Sandbox Code Playgroud)
elem假设是a DateTime*int*decimal*decimal,我的问题是如何在上面的lambda中访问元组的第四个元素?
如何使用1111到6666之间的元素在F#中创建一个Set,而没有任何值为0,7或更高.
例如,[1111,1112,1113,1114,1115,1116,1121]
我想使它成为一个集.
提前致谢
请举例说明如何在运行时使用反射在F#中创建新类型(例如,两种类型的笛卡尔积)?
UPDATE
我正在寻找一流的语言.我被告知F#可以这样做.我没有尝试任何东西,因为还没有学习F#.我只想看看它是如何制作的.
我将如何操作以下int*字符串列表以获取列表中的"字符串"部分作为我的输出?
let item =[
(12,"sausages");
(3,"chips");
(5,"burger");
(19,"cheese");
(24,"milk");
(44,"eggs");
]
Run Code Online (Sandbox Code Playgroud)
我开始使用listfilter.有人可以建议如何正确过滤这个?