Size: a a a

2020 August 02

АХ

Алексей Худяков... in Haskell
Ах да, результат будет разным в зависимости от того сработает ли првило перезаписи
источник

DB

Danil Berestov in Haskell
Алексей Худяков
Ах да, результат будет разным в зависимости от того сработает ли првило перезаписи
Перекаво?
источник

АХ

Алексей Худяков... in Haskell
Не знаю можно ли это назвать иначе как "сломано"
источник

АХ

Алексей Худяков... in Haskell
{-# RULE ... #-}
источник

JS

Jerzy Syrowiecki in Haskell
Jerzy Syrowiecki
class Fractional a => Floating a

или на привычном языке математики значок будет смотреть наоборот

∀ a. Floating a => Fractional a
Floating ⊆ Fractional

но потом мы говорим не про типы, а про функцию, параметризованную этими типами, например,

realToFrac pi :: ∀ (b :: Type). Fractional b => b

она принимает параметр (b :: Type). она может принять Fractional, следовательно, может принять что угодно внутри Fractional, например, Floating
кстати, вот ещё забавный случай из значков наоборот:

(⟹) :: Bool -> Bool -> Bool
(⟹) = (<=) -- двоичная импликация выражается через "меньше либо равно"
источник

АХ

Алексей Худяков... in Haskell
Ну и иерархия численных тайпклассов сломана начиная с Num
источник

DB

Danil Berestov in Haskell
Jerzy Syrowiecki
class Fractional a => Floating a

или на привычном языке математики значок будет смотреть наоборот

∀ a. Floating a => Fractional a
Floating ⊆ Fractional

но потом мы говорим не про типы, а про функцию, параметризованную этими типами, например,

realToFrac pi :: ∀ (b :: Type). Fractional b => b

она принимает параметр (b :: Type). она может принять Fractional, следовательно, может принять что угодно внутри Fractional, например, Floating
А, норм
источник

DB

Danil Berestov in Haskell
Догнал
источник

JS

Jerzy Syrowiecki in Haskell
Алексей Худяков
Ах да, результат будет разным в зависимости от того сработает ли првило перезаписи
ага, то есть от уровня оптимизации. если совсем повезёт, в тесте одно, в проде другое
источник

DB

Danil Berestov in Haskell
Jerzy Syrowiecki
кстати, вот ещё забавный случай из значков наоборот:

(⟹) :: Bool -> Bool -> Bool
(⟹) = (<=) -- двоичная импликация выражается через "меньше либо равно"
Ну это со школы известно, что у них таблицы истинности одинаковые
источник

DB

Danil Berestov in Haskell
Jerzy Syrowiecki
ага, то есть от уровня оптимизации. если совсем повезёт, в тесте одно, в проде другое
Это прям реально проблема?
источник

DB

Danil Berestov in Haskell
Просто звучит максимально печально
источник

JS

Jerzy Syrowiecki in Haskell
Danil Berestov
Это прям реально проблема?
я не слышал о проблемах из-за этого. @PineappleZombie ?
источник

JS

Jerzy Syrowiecki in Haskell
Алексей Худяков
Ну и иерархия численных тайпклассов сломана начиная с Num
ты фанат колец-полей или настоящие проблемы есть?
источник

AA

A64m AL256m qn<co... in Haskell
Алексей Худяков
Ну и иерархия численных тайпклассов сломана начиная с Num
а в пакете алгебра - нормально?
источник

к

кана in Haskell
для начала бы вынести fromInteger в IsNumber, а все остальное уже мелочи
источник

АХ

Алексей Худяков... in Haskell
Jerzy Syrowiecki
я не слышал о проблемах из-за этого. @PineappleZombie ?
А численными методами на хаскелле особенно не занимаются. Вот грабли и не собирают. Но проблема той же природы: https://github.com/kolmodin/binary/issues/64
источник

АХ

Алексей Худяков... in Haskell
Jerzy Syrowiecki
ты фанат колец-полей или настоящие проблемы есть?
И линейных пространств. Вот надо сложить два вектора/матрицы — изобретай оператор!
источник

АХ

Алексей Худяков... in Haskell
A64m AL256m qn I0
а в пакете алгебра - нормально?
Там другая проблема инстансы слишком гранулярны. Но тут мне кажется проблема языка — неудобно работать с очень гранулярными тайп классами. Мне кажется, что было бы хорошо иметь какие-нибудь классы-синонимы: вроде определил  инстанс для кольца — получил инстанс для аддитвной группы/моноида нахаляву (само сложение понадобится, конечно, определить)
источник

AA

A64m AL256m qn<co... in Haskell
да
источник