가장 깨끗한 &은 F #에서이 '복합'목록을 만드는 가장 간단한 방법입니다.FSharp Compound List
입력 :
[ 1; 2; 3; 4; 5 ]
원하는 출력 :
[ [1]; [1;2]; [1;2;3]; [1,2,3,4]; [1;2;3;4;5] ]
가장 깨끗한 &은 F #에서이 '복합'목록을 만드는 가장 간단한 방법입니다.FSharp Compound List
입력 :
[ 1; 2; 3; 4; 5 ]
원하는 출력 :
[ [1]; [1;2]; [1;2;3]; [1,2,3,4]; [1;2;3;4;5] ]
이 많은 방법이 있지만 나는이 깨끗한 하나라고 생각 : 생략 List.scan
마지막 List.tail
를 사용하여
[1;2;3;4;5]
|> List.scan (fun x y -> x @ [y]) []
|> List.tail
최초의 요소는 빈 상태 (empty)의리스트
는 다음의 int로 엄격하게 내용을 해석하고 지능형리스트를 사용하여 다른 방법 :
[1; 2; 3; 4; 5] |> List.map(fun n -> [ for i = 1 to n do yield i ])
그리고 당신은 위와 같은 출력을 얻을 수 있지만, 귀하의 의견이있는 경우 :
[2; 1; 2] |> List.map(fun n -> [ for i = 1 to n do yield i ])
당신은 얻을 :
[[1; 2]; [1]; [1; 2]]
어떤 것이 좋을 수도 있고 그렇지 않을 수도 있습니다.