C#에서 함수를 얻었으므로 F #로 넘기고 싶습니다. 불행하게도, 난 그냥 F 번호에서이 표현 할 수있는 방법은없는 것 같다있는 경우에 충돌 :이 꽤 쉬울 것이라고 생각했던F #에서 변수 수를 취하는 함수 작성하기
public static T Min<T>(params T[] p) where T : IComparable
{
T m1 = p[0];
foreach (T v in p)
{
m1 = (m1.CompareTo(v) < 0) ? m1 : v;
}
return m1;
}
이 C#을 기능을 가지고,하지만 난 방법을 이해하지 않습니다 F #에서 변수 인수 목록을 지정합니다. 나는 이것을 시도 :
let rec Min l =
match l with
| [] -> 0 // should throw exception here
| [v] -> v
| (h::t) -> min h (Min t)
하지만 C 번호로부터의 전화는 Microsoft.FSharp.Collections.List
을 기대하고있다. 그것이 가능하면 params T[]
을 기대할 수 있습니까? 그렇다면 어떻게해야합니까?
다음과 같이 함수를 다시 작성하는 것이 좋습니다. let min l = Seq.reduce min l – Juliet
예, 그냥 본 것으로, 지금 Seq 메서드를 통과했습니다 (첫 번째 히트는 폴드되었지만 정확히 내가 뭘 찾고 있어요 – Anteru