Я собираюсь узнать вас, Haskell. У меня есть следующая функция:Haskell получает строку из понимания списка
bmiTell :: (RealFloat a) => a -> a-> String
bmiTell weight height
| bmi <= skinny ="underweight"
| bmi <= normal = "ok"
| bmi <= fat = "fat"
| otherwise = "whale"
where
bmi = weight/height^2
(skinny,normal,fat)=(18.5, 25.0,30.0)
который работает отлично. Я теперь делает список понимание, где желаемый результат что-то вроде этого:
[(68, "пониженный"), (69, "хорошо"), (70, "хорошо")]
это мой GHCi вход:
[(x,y)| x <-[68..70], y <- bmiTell x 185]
и выход
[(68,0, 'и'), (68.0, 'п'), (68,0,» г '), (68.0,' е '), (68.0 , 'Г'), (68.0, 'W'), (68.0, 'е'), (68.0, 'я'), (68.0, 'г'), (68.0, 'Н'), (68.0,» г '), (69.0' и '), (69,0,' п '), (69,0,' d '), (69,0,' е '), (69,0,' г '), (69,0,' W»), (69,0, 'е'), (69,0, 'я'), (69,0, 'г'), (69,0, 'Н'), (69,0, 'т'), (70.0 'и'), (70,0, 'п'), (70.0, 'd'), (70.0, 'е'), (70.0, 'г'), (70.0, 'W'), (70.0, 'е'), (70.0 , 'я'), (70.0, 'г'), (70.0, 'Н'), (70.0, 'т')]
Я попытался что делает его (х, [у]), но Я получаю тот же результат с Chars в «» с вместо одинарных кавычек
Просто используйте '[(x, bmiTell x 185) | x <- [68..70]] ' – ErikR
Действительно, спасибо, могу я ответить на ваш вопрос? * so embarassed * – justice
Поместите bmiTell X 185 в список [bmiTell X 185], и ваш должен работать. Помните, что строки - это списки. Понимание было pull} ng из единственного найденного списка. Кроме того, два генератора в понимании являются aXb или декартовыми – fpmora