나는 [a, b, c, d,. . . ]에서 [(a, b), (c, d),. . .]. 이제이 작동하고 여기에 코드입니다 :하스켈 - 내 foldl 함수 작동을 시도 중
makeTuple :: [a] -> [(a,a)]
makeTuple [] = []
makeTuple [a] = []
makeTuple (x:y:xs) = (x,y): (makeTuple xs)
지금이해야 할 다음 일은 이것이다 : 이전 기능을 사용 foldl 및 람다를 사용하여, 두 개의 요소를 제품에 각각의 튜플로 변환 표현. 그리고 이것이 내가 가지고있는 것입니다 :
productTuple [x] = foldl makeTuple [] [x]
지금 정확히 이것이 나에게 묻히는 것이 확실하지 않습니다. 나는 타입 선언과 그 밖의 것들과 분리 된 함수를 만들어야하는지 잘 모르겠다. 어쩌면 누군가가이 문제에 접근하는 것이 가장 좋은 방법인지 알 수 있습니다. 또한이 코드는 작동하지 않으며 이유를 알지 못합니다.이 부분에 대한 도움이 필요합니다. (람다를 사용하는 것을 알지만 실제로 사용하는 방법은 잘 모르겠다. 도움이 필요한 또 다른 부분이다.) 정말로 고마워 할 것이다.
의 몇 가지 예를? –
productTuple을 공백으로 처리해야하므로 'productTuple (x : xs)'및 'productTuple []'을 구현해야합니다. – altschuler
힌트 : 목록을 입력으로 사용하는'foldl'을 어떻게 쓰겠습니까 (기본적으로'id' 함수)? –