私はほぼ 2 時間このコードに取り組んでいますが、同じコンパイラ エラー メッセージが表示され続けます。私は自分の研究をしましたが、答えを見つけることができません
buildTable :: Int -> Int -> (Int -> Int -> a) -> [[a]]
buildTable n m fun = [[ fun x y
| x <- [0..n-1]]
| y <- [0..m-1]]
lookupAns :: Int -> Int -> [[Int]] -> Int
lookupAns len1 len2 theArray =
theArray !! len1 !! len2
lcsLength :: String -> String -> Int
lcsLength s1 s2 =
let
n1 = (length s1)
n2 = (length s2)
table = buildTable (n1 n2 lcsHelp)
lcsHelp = if ( n1 == 0 || n2 == 0 )
then 0
else if ( last s1 == last s2 )
then
(lookupAns
(n1 - 1)
n2
table)
+ 1
else
max
(lookupAns
n1
(n2-1)
table)
(lookupAns
(n1-1)
n2
table)
in lookupAns
(length s1)
(length s2)
table
何を試しても同じエラーメッセージが表示されるようになりました。エラー メッセージは、" 期待される型 '[[Int]] -> Int' と実際の型 [Int] を一致させることができませんでした" であり、他の仕様はコードの最後にある max の最初の呼び出しを指しています。助けてください、これは本当にイライラします
これで、新しいコードでコンパイルして実行できます。ちょっと遅くなってきたので、後で必ず投稿します。これは夜に置いておきます。