Haskell의 map 함수에는 두 개의 입력 매개 변수가 있습니다. 첫 번째 매개 변수는 함수이고 두 번째 매개 변수는 목록입니다. map 함수는 입력 매개 변수로 전달 된 함수를 목록의 모든 요소에 적용하고 새 목록을 반환합니다.
이 기능에 해당하는 C #이 있습니까?
답변
답변
Select
and SelectMany
에 대한 또 다른 대안 은 자신의 확장 메서드를 작성하는 것입니다.
public static IEnumerable<U> Map<T, U>(this IEnumerable<T> s, Func<T, U> f)
{
foreach (var item in s)
yield return f(item);
}
이 달콤한 확장 방법에 대해 Wes Dyer에게 감사드립니다! 🙂 자세한 내용은 게시물 을 참조하십시오.
답변
이후 Select
및 SelectMany
: 이미 언급 한, 당신이 요청하지 않은 추가 질문 답변 해 드리겠습니다 fold
로 발견된다 집계를 .
이제이 글을 읽는 모든 사람은 Language Y 관용구를 사용하여 Language X를 작성하는 That Guy가 될 수있는 모든 준비를 갖추어야합니다. 따라서 동료 C # 프로그래머를 위해 너무 성급하게 생각하지 마십시오 .
답변
그리고 묻지 않은 질문에 대답하기 위해 “시퀀스”모나드를 바인딩하는 Haskell은 C #에서 SelectMany라고합니다. 자세한 내용은 Wes Dyer의 훌륭한 기사를 참조하십시오.
http://blogs.msdn.com/wesdyer/archive/2008/01/11/the-marvels-of-monads.aspx