私は現在、haskellでテキストベースのメニューシステムを作成しています。各関数がリストを編集して返すBookというデータ型を作成しました。ただし、このリストを編集して元に戻すことができるメニュー部分を機能させる方法を理解することはできません。
私がメニューにこだわっている例は、リストに本を追加し、メニューをリロードして、新しい追加で本を表示できるようにする必要があります。
メニューの例
menu:: [Book] -> [IO]
menu books = do
str <- getLine
let selectNum = (read str :: Int)
case selectNum of
1 -> let sd = addNewBookIO books
2 -> displayAllBooksFromYear books
新しい本を追加する例
addNewBookIO :: [Book] -> IO [Book]
addNewBookIO films =
do putStr "Film name: "
filmTitle <- getLine
putStr "List all cahr in the Book (separated by commas): "
cast <- addToStringArray []
putStr "Year of Realese in the UK: "
year <- getLine
let test = (read year :: Int)
putStr "List all the fans(separated by commas): "
fans <- addToStringArray []
putStrLn "Your Book has been added"
let bookList = addbookFilm (Film bookTitle cast test fans) films
return bookList
どんな助けでもありがたいです