-1
test::Int->(Int-> Char)->Char
test n f =  f(n)

DD::Int->Char
DD a | a==1 = '1'

現在char値を返す高階関数であるテスト、私はStringas を返す必要がありましたtest::Int->(Int-> Char)->String

関数本体に変更しました

test::Int->(Int-> Char)->String
test n f =  map f(n)

エラー

Type error in application
*** Expression     : map f n
*** Term           : n
*** Type           : Int
*** Does not match : [a]

この関数を map を使用して文字列に適用するにはどうすればよいですか? どこで間違ったのですか?

4

1 に答える 1

3

文字列は単なる文字のリストなので、文字のリストを返すようにしてください:

test n f =  [f n]

ところで、Haskell では、本当に必要でない場合は通常、括弧を使用しません。

于 2011-06-11T14:26:50.163 に答える