-2

最後の関数と重要度関数を追加し、次 のようbSearch()にリンクしcombining() ます

       combining::[BookInfo]->[[Int]]

       combining books=superBubble [(map index books)] 
        bSearch [xs] key s
                  if length[xs] <> s then return 9999
                  else
                  if
                    key=m then elemIndex m [xs]
                  else
                    if key<m then bsearch (splitAt (x:xs) o) key o 
                   else bsearch (splitAt ms (o+2) ) key n  
                  o<-s/2-1
                  n<-length ms
        finalBsearch::(Ord)=> [a]->a->a->Int
        finalBsearch ms key s= bsearch  (combining [ms]) key s  

しかし、5 行目でエラーが表示Syntax error in input (unexpected keyword "if")されます。助けてくれてありがとう = 完全なコードの詳細については、Haskell のランタイム エラーを参照してください。

しかし、完全な解決策ではなく、指示だけを教えてください

4

1 に答える 1

1

if簡単に修正するには、 --式全体を括弧で囲みます: then- 。ただし、これにより、このエラー メッセージのみが修正されます。コードにはさらに多くのエラーが含まれています。このコードが何を期待しているのかわかりません。else()

ifカスケード--を使用する代わりに、ガードを使用するthenelseが明確であることがわかる場合があります。

nb例外はありません。コンパイル エラーがあります。

于 2012-07-17T07:41:02.290 に答える