2011-09-28 4 views
1

testFn을 두 개의 Ints를 취하는 함수로 둡니다.'2d'Haskell 목록 작성

I가 나는 < N 위해 (testFn IJ)의 모든 값을 포함하는 N의 X에 M 이차원 테이블 (리스트 목록)을 구축 기능 J < M.

어떻게 작성하려고하고 이 일을 할 수 있습니까? MN 전 처리기 매크로입니다

+0

이 2 개 인자를 가진 함수에 대한 동적 프로그래밍을 구현하기 위해, 함수 값의 memoization''매우 유용 할 수 있습니다. – vikingsteve

답변

8

목록 이해가 쉬운 것 :

[[testFn i j | j <- [0..(m-1)]] | i <- [0..(n-1)]] 
+2

@chrislegend : 대문자를 변수 이름으로 사용할 수 없으므로 leftaroundabout의 대답은 정확하지 않습니다. – ivanm

+0

@ivanm : _my_ 답변에 대한 댓글이 아니 었습니까? 물론 사실입니다. M과 N을 합법적 인 Haskell 변수 이름으로 대체해야한다는 것을 분명히하기위한 라인을 추가해야합니다. 그러나 해설을 사용하지 않고 단지 하만을 사용하는 대신에 @hammar를 사용해야합니다. – leftaroundabout

+0

@leftaroundabout : 예 : s – ivanm

2
[ [testFn i j | j<-[0..(M-1)] ] | i<-[0..(N-1)] ] 

은 코드 유효 하스켈을 만드는 과정에서 (소문자로 시작해야합니다) 실제 변수 이름을 대체합니다.

관련 문제