C++ と Haskell による卒業研究のケーススタディとして、レコードの配列のインデックスのバイナリ検索を選択しました。
import Data.List
data BookInfo = Book Int String [String]
deriving (Show)
--変数の入力
entering :: Int String [String]-> Book
entering id name subject= Book id name subject
-- タプルの配列の idex を作成します
index :: [Book]->[Int]
index [m] = getID (Book id _ _ ) = id
main :: IO ()
main = do
putStrLn "Please enter your book id,name,Subject"
Book inpStr <- getLine
putStrLn print r
-- マップを使用した BubbleSort
bubbleSort ::(Ord x) => [x] -> [x]
bubbleSort (x':xs) = if x>x' then x': bubbleSort(x:xs)
else
if x<x' then x: bubbleSort(x':xs)
else
x: bubbleSort(X':xs)
bubble ::[a] -> [a]
bubble [a] = map bubbleSort [a]
-- 配列のインデックスを作成
indexsort(ord a)::[int]->[Int]
indexsort a=bubble a
--タプルのリストを作る
addBooks2List Book->[Book]->[Book]
addBooks2List b m=b:entering b':m
--バイナリサーチ
binarysearch [Int]->Int->Int->Int->Int
a=bubble x
binaryseach a i m j=
let u=(i+m)/2
if a[u]=j then u
if a[u]>j then binaryseach a i u-1 j
else
if a[u]<j then binarysearch a u+1 m j
if i=m "Not found"
-- 検索された ID を持つタプルを出力します
print::Int->Book
print r= Book r y z
r=binaryseach m 0 (length m)
入力 'entering' で 8:3 解析エラーでエラーが発生しました。このエラーの意味は何ですか? どうすれば修正できますか?