2013-04-19 3 views
0

상수가있는 목록 인 주 매개 변수로 구성된 파이프 라인을 만들려고합니다. 나는 offset을 취할 때 작동하는 간단한 예를상수 매개 변수가있는 파이프 라인 목록

type ClockType = | In | Out 
let ClockMap index offset = 
    match index with 
    | index when index + offset % 2 = 0 -> In 
    | _ -> Out 
let MapIt offset = [0 .. 23] |> List.map offset 

으로

. tuple을 시도했지만 그 후에 int list을 좋아하지 않습니다. 이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

나는 F #을 배워서 나를 참아줍니다.

+0

'index with index '는'index when index'입니까? – ildjarn

+0

@ildjarn, 예, 해결할 것입니다. – Jon49

+0

당신이 매개 변수의 순서를 바꾸고 싶다고 생각합니다 –

답변

3

이게 당신이 쓴거야?

type ClockType = In | Out 
let clockMap offset index = if (index + offset) % 2 = 0 then In else Out 
let mapIt offset = [0 .. 23] |> List.map (clockMap offset) 

출력은 다음과 같습니다

  • clockMap의 매개 변수를 거꾸로
  • %+
  • 보다 높은 우선 순위를 가지고 있었다 :

    mapIt 3 |> printfn "%A" 
    // [Out; In; Out; In; Out; In; Out; In; Out; In; Out; In; Out; In; Out; In; Out; 
    // In; Out; In; Out; In; Out; In] 
    

    그렇다면, 여러 문제가 있었다 clockMap가 호출되고 있지 않았다 (그리고 offset 요구는 부분적으로 clockMap에 적용되는)

if-match에서의 변화는 가독성을 위해 순전히이며, 관용구, 비 문자 let 바인딩 값은 소문자 (유형 이름 및 시작 클래스 속성/메소드는 대문자로 시작).

관련 문제