Как обрабатывать более сложные кортежи в Haskell? - PullRequest
0 голосов
/ 19 июня 2020

В основном этот фрагмент кода работает:

toFullName :: Student -> String
toFullName (Student firstName lastName _) = firstName ++ " " ++ lastName

namesList :: [Student] -> [String]
namesList students = map toFullName students

И это ниже не

toRaport :: (Int, Student) -> String
toRaport (num, Student firstName lastName age) = num ++ ". student: " ++ lastName ++ " " ++ firstName ++ ". wiek: " ++ age ++ "\n" 

raportList :: [(Int,Student)] -> [String]
raportList students = map toRaport students

Хотя они очень похожи, и я просто не знаю, как обрабатывать больше сложные кортежи в Haskell.

1 Ответ

0 голосов
/ 19 июня 2020

Я добавил шоу там, где это необходимо, и теперь оно выглядит так:

    indexList listToProcess
=> [(1,Student {firstName = "Alicja", lastName = "Akla", age = 21}),(2,Student {firstName = "Batrek", lastName = "Bodo", age = 20}),(3,Student {firstName = "Celina", lastName = "Czyzyk", age = 21}),(4,Student {firstName = "Damian", lastName = "Dab", age = 22}),(5,Student {firstName = "Eustachy", lastName = "Elo", age = 20})]
   a = indexList listToProcess
   raportList a
=> ["1. student: Akla Alicja. wiek: 21\n","2. student: Bodo Batrek. wiek: 20\n","3. student: Czyzyk Celina. wiek: 21\n","4. student: Dab Damian. wiek: 22\n","5. student: Elo Eustachy. wiek: 20\n"]

Итак, он работает, но я хотел бы, чтобы он был в другом формате, вместо [(Int, Student)] -> [String ] мне нужно фактически изменить его на [(Int, Student)] -> String. Чтобы эти \ n отформатировали все правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...