во всех языках такое (разве что где-то используются символьные вычисления, тогда можно вывести, что tan pi == 0).
Кстати, а в чём суть определения tanDouble# в GHC.Prim?
Как я понял, там какие-то танцы с default (), но не могу понять, как это работает.
Код:
default ()
…
data Double#
…
tanDouble# :: Double# -> Double#
tanDouble# = tanDouble#
это детали реализации. примерно как в С есть общий макрос для всех типов tan() и много частных реализаций
а, если вы про смысл этой бессмысленной рекурсии, то это значит, что реализация не выражается в Хаскеле и будет подставлена компилятором
и default в данном случае не играет роли
Понятно, спасибо.
Обсуждают сегодня