LINUX.ORG.RU

Помогите нубу

 ,


0

2

Вопрос к адептам ФП. Чем можно заменить в ФП классы и нужно ли это вообще делать? Особенно интересно мнение знающих F# людей, нужны ли там классы или они являются скорее костылем, который вы заменяете на что-то?

Ответ на: комментарий от anonymous

ФУТАКИМБЫТЬ!!!

Окай

data Mushroom = Mushroom { size :: Integer
                         , isMagick :: Bool
                         }
                
instance Show Mushroom where
  show m = "This mushroom is " ++ show (size m) ++ " inch high and it is " 
           ++ (if isMagick m then "magic" else "not magick")
                
mushroom = Mushroom {size = 0, isMagick = False}
         
main = do { print $ mushroom
          ; print $ mushroom {isMagick = True, size = 20}
          ; print $ mushroom {size = 42}
          }
kim-roader ★★
()
Ответ на: комментарий от anonymous

instance Show Mushroom where же.

Не надо так делать. class Show предназначен для такого вывода, который потом можно заReadить. kim-roader всё делал правильно.

Miguel ★★★★★
()
Ответ на: комментарий от Miguel

Miguel

Не надо так делать. class Show предназначен для такого вывода, который потом можно заReadить. kim-roader всё делал правильно.

Он просто не написал соответствующий инстанс Read, лично я не считаю такой код неправильным.

unC0Rr ★★★★★
()
Ответ на: комментарий от Miguel

Не надо так делать. class Show предназначен для такого вывода, который потом можно заReadить

Это-то да, я просто указал на то, что функция, которая всего лишь переводит объект в текстовое представление, должна быть чистой, а не IO, как в исходном примере.

anonymous
()
Ответ на: комментарий от anonymous

я просто указал на то, что функция, которая всего лишь переводит объект в текстовое представление, должна быть чистой, а не IO, как в исходном примере.

А, это точно, поддерживаю.

Miguel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.