c#F#에서 lambda 표현식 호출
4357 단어 lambda
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.FSharp.Core;
namespace XZL.FSharpHelp
{
public class FuncToFSharpFunc
{
public static FSharpFunc<T1, TResult> Create<T1, TResult>(Func<T1, TResult> func)
{
Converter<T1, TResult> conv = value1 => func(value1);
return FSharpFunc<T1, TResult>.FromConverter(conv);
}
public static FSharpFunc<T1, FSharpFunc<T2, TResult>> Create<T1, T2, TResult>(Func<T1, T2, TResult> func)
{
Converter<T1, FSharpFunc<T2, TResult>> conv = value1 =>
{
return Create<T2, TResult>(value2 => func(value1, value2));
};
return FSharpFunc<T1, FSharpFunc<T2, TResult>>.FromConverter(conv);
}
public static FSharpFunc<T1, FSharpFunc<T2, FSharpFunc<T3, TResult>>> Create<T1, T2, T3, TResult>(Func<T1, T2, T3, TResult> func)
{
Converter<T1, FSharpFunc<T2, FSharpFunc<T3, TResult>>> conv = value1 =>
{
return Create<T2, T3, TResult>((value2, value3) => func(value1, value2, value3));
};
return FSharpFunc<T1, FSharpFunc<T2, FSharpFunc<T3, TResult>>>.FromConverter(conv);
}
}
}
다음은 예를 들어 사용법을 설명합니다.
먼저 F#을 사용하여 lambda 매개변수를 함수로 다음과 같이 정의합니다.
let Random(row:int) (col:int) f = Array2D.init row col f
C#에서 이 F# 함수 매개 변수를 임의 2D 배열로 호출합니다.
1 Random r = new Random();
2 Func<int, int, double> func = (i, j) => r.NextDouble();
3 var f = FuncToFSharpFunc.Create<int, int, double>(func);
4 double[,] c = MatrixMod.Random<double>(4, 4, f);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Lambda Cron 예제(Terraform)이 기사에서는 EventBridge를 사용하여 일정에 따라 람다를 트리거하는 방법을 살펴보겠습니다. Terraform을 사용하여 이를 구현할 것입니다. 이 예제에서는 간단한 Golang Hello World 예제를 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.