Dec 01, 2011 23:46
Я победил в этой маленькой битве. Описание команд MIPS (не полиморфное) успешно грузится.
Я поменял направление хранения цифр с "старшие знаки вперёд" на "младшие знаки вперёд".
Было:
infixr 5 :.
data d :. ds = d :. dsСтало:
infixl 5 :*
data ds :* d = ds :* dТеперь сложение не требует вычисление длины и нормализации чисел, а сразу начинает складывать с младших битов. При этом в некоторых случаях я могу вообще лениво сделать. Например, я складываю числа 123 и 6. Plus (D1 :* D2 :* D3) D6, а со скобками Plus (((D1) :* D2) :* D3) D6. Переноса для сложения 3 и 6 нет, поэтому результат доступен практически сразу, мне не надо анализировать (D1 :* D2).
языки описания аппаратуры,
успех,
прогресс,
системы типов,
Хаскель