LINUX.ORG.RU

История изменений

Исправление AndreyKl, (текущая версия) :

getType : (isInt : Bool) -> Type
getType False = String
getType True = Int

workingFunction : (x: Int) -> getType (x /= 42)
workingFunction 42 = "Мужик, это был смысл жизни, вселенной и всего такого!"
workingFunction x = x*2

main : IO ()
main = do putStr $ workingFunction 42
          putStr $ "Квадрат 122 равен " ++ (show $ workingFunction 122)

String ++ Int ? Так можно?

нет, это я описался, show нужен

типобезопасный printf А если в него шаблон из пользовательского ввода грузить, то что будет?

Я когда года два назад увидел код, тоже этим вопросом задался. Но вопрос на вскидку - как ты будешь параметры туда передавать если ввод пользовательский? Т.е. там ведь переменное число параметров идёт после шаблона…

Исходная версия AndreyKl, :

getType : (isInt : Bool) -> Type
getType False = String
getType True = Int

workingFunction : (x: Int) -> getType (x /= 42)
workingFunction 42 = "Мужик, это был смысл жизни, вселенной и всего такого!"
workingFunction x = x*2

main : IO ()
main = do putStr $ workingFunction 42
          putStr $ "Квадрат 122 равен " ++ (show $ workingFunction 122)

String ++ Int ? Так можно?

нет, это я описался, show нужен

типобезопасный printf А если в него шаблон из пользовательского ввода грузить, то что будет?

Я когда года два назад увидел код, тоже этим вопросом задался. Но вопрос на вскидку - как ты будешь параметры туда передавать если ввод пользовательский?