Мы все знаем, что :t
в ghci
дает тип выражения:преобразовать выражение в строку, описывающую его тип в скрипте haskell?
Prelude> :t [1..]
[1..] :: (Enum t, Num t) => [t]
Что мне нужно, это эквивалент :t
в Haskell скрипта (я буду называть его typeStr
):
main = putStrLn $ typeStr [1..]
который может напечатать что-то вроде (Enum t, Num t) => [t]
на экране.
Возможно ли это?
Зачем вам это нужно? Какова ваша основная проблема? – dave4420
Просто проявляйте интерес к тому, как это сделать, я хотел бы написать вспомогательную функцию, которая может дать результат выражения, а также его тип. – Javran
Если вы хотите использовать эту функцию только в ghci, вы должны запустить ': set + t' в приглашении ghci: впоследствии он расскажет вам типы выражений, которые вы вводите, когда обычно они будут сообщать вам только их значения. – dave4420