Помогите, пожалуйста, туповатому новичку. Как в хаскеле конвертировать типы? Напр. сделать из числа 123 строку «123» и наоборот. Ещё хаскель ругается при смешивании целых и вещественных чисел. Напр. хочу проверить число на полный квадрат:
perf n = floor (sqrt n) == n
-- или проверяем дробную часть на 0
perf n = (sqrt n) `mod` 1 == 0
Ещё в хаскеле есть разные типы целых, как я понял: Int и Integer, которые тоже не дружат. Если не трудно, расскажите вкрадце, как связывать в работе основные типы (целые, вещественные числа, строки).
P.S. Как лучше проверить на тот же полный квадрат наиболее элегантно и чтобы быстро проверял? Нельзя ли что-то вроде
perf n = n == k^2 where k <- [1..]