gpt4 book ai didi

f# - 如何在 f# 中执行多行 lambda 表达式?

转载 作者:行者123 更新时间:2023-12-03 14:39:05 24 4
gpt4 key购买 nike

我将如何在 F# 中执行此操作(C#)

public class MyClass
{
void Render(TextWriter textWriter)
{
Tag(() =>
{
textWriter.WriteLine("line 1");
textWriter.WriteLine("line 2");
});
Tag(value =>
{
textWriter.WriteLine("line 1");
textWriter.WriteLine(value);
}, "a");
}

public void Tag(Action action)
{
action();
}
public void Tag<T>(Action<T> action, T t)
{
action(t);
}
}

最佳答案

F# 中的多行 lambda 只是

(fun args ->
lots
of
code
here
)

整个代码将类似于
open System.IO

type MyClass() as this =
let Render(tw : TextWriter) =
this.Tag(fun() ->
tw.WriteLine("line1")
tw.WriteLine("line2")
)
this.Tag(fun(value : string) ->
tw.WriteLine("line1")
tw.WriteLine(value)
, "a"
)
member this.Tag(action) =
action()
member this.Tag(action, x) =
action(x)

假设我没有抄写错误。 (我在公共(public)接口(interface)中使用了 F# 函数类型而不是 Action 委托(delegate)。)

关于f# - 如何在 f# 中执行多行 lambda 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/814278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com