Haskell에서 나는 주어진 parameter [[a]] -> [[a]]
와 같은 목록을 생성하는 타이핑 기능을 찾고 있습니다. 함수는 각 요소가 특정 값을 가질 수 있다는 점을 고려하여 가능한 모든 목록의 목록을 생성해야합니다. 따라서 위의 예에서 가능한 모든 목록에서 첫 번째 요소는에서 임의의 값을 , 두 번째 요소는 임의의 값을 , 세 번째 요소는 모든 . 각 목록은 매개 변수로 전달 된 목록의 목록 수와 크기가 같아야합니다 (위의 경우에는 3 개의 목록이 있으므로 3 개입니다 ).[[1,1,1], [1,1,2], [1,1,3], [1,2,1], [1,2,2], [1,2,3]]
[[1], [1,2], [1,2,3]]
[1]
[1,2]
[1,2,3]
[[1], [1,2], [1,2,3]]
이를 달성하기 위해 replicateM
함수 를 살펴 보았지만 각 요소가 동일한 수의 값을 가질 수 있다고 가정합니다. 다른 요소가 다른 값을 가질 수 있도록 지정할 수있는 함수가 있습니까? 없는 경우이를 달성하는 기능은 어떻게 생겼을까 요?
이 기능은
sequenceA :: (Applicative f, Traversable t) => t (f a) -> f (t a)
목록에 특화 (f ~ [], t ~ [])
되어 있습니다.
sequenceA :: [[a]] -> [[a]]
> sequenceA [[1], [1,2], [1,2,3]]
[[1,1,1],[1,1,2],[1,1,3],[1,2,1],[1,2,2],[1,2,3]]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다