0
定義一個類型LibraryItem,表示圖書館向 用戶發放的項目:期刊或書籍。期刊具有目錄編號,標題和出版頻率。發佈頻率是天數 或幾個月。書籍有一個目錄號, 標題和作者。只給出一本書或期刊,返回其標題和目錄號。鑑於書籍和期刊列表,請返回標題和目錄編號列表。返回標題列表
data Libraryitem = Book {cataloguenumber1 :: Int , title1 :: String , author :: String}| Periodical {cataloguenumber2 :: Int, title2 ::String , publicationfrequency :: Publicationfrequency} deriving (Show,Eq,Ord)
data Publicationfrequency = NumberofDays Int | NumberofMonths Int deriving (Show,Eq,Ord)
對於返回時,一本書/期刊詳細給出一個標題,下面的代碼工作
titleR (Book _ titleR _) = titleR
titleR (Periodical _ titleR _) = titleR
我有兩個問題,
1)是否有返回任何其他方式在定義我的數據類型時使用title1作業的單個書籍的標題和目錄編號?
2)如何使用遞歸和執行此物品
我嘗試遞歸的列表如下
titlen1 [] = []
titlen1 (x:xs) = if x == (Book _ title1 _)
then title1 : title1 xs
雖然,我寧願使用TITLE1,我在我的定義中使用。我也知道這個代碼不足以執行任務。