String에 두 번 사용되는 함수가 필요합니다. 나는 내가 원하는 것을 설명 할 것이므로 질문의 끝에서 내가 의미하는 바를 얻을 수 있기를 바랍니다.지도를 두 번 사용하여 함수 사용
그래서이 기능이 있습니다.
foo :: String -> [String]
foo = ...
이제이 함수를 String에 두 번 사용하고 싶습니다. 따라서 처음 사용할 때는 함수에 주어진 String을 사용하여 foo를 실행해야하고 두 번째 실행에서는 첫 번째 실행에서 생성 된 [String]의 모든 String에 사용해야합니다. 그래서 나는 그지도가 최선의 기능이라고 생각했습니다. 그래서 나는 지금이 기능
f :: String -> [String]
f w = map foo (foo w)
있어하지만 compliler 날이 오류를 제공합니다
MyHaskell.hs:86:19:
Couldn't match type `[Char]' with `Char'
Expected type: String -> String
Actual type: String -> [String]
In the first argument of `map', namely `edits1'
In the expression: map edits1 (edits1 word)
나는 문제가 내 함수 foo 것으로 추측 (문자열 -> [문자열]) 작동하지 않습니다를 지도 ((a-> b) -> [a] -> [b]).
어떻게 수정합니까?
이는'import Control.Monad;와 같습니다. f = foo> => foo'. – user3237465
또한'concatMap foo와 동일합니다. foo'. –
그리고'foo> => foo'보다 10 배나 더 읽기 쉽습니다. – alternative