Кстати, библиотека repr (будет) is language and coding neutral и одни и те же значения (например числа) могут быть репрезентованы по-разному, в зависимости от кодинга и лейаута. При этом лейаут может быть языковым + ещё дополнительно. И в итоге вполне возможно репрезентовать как в десятичные ASCII числа, так и в шестнадцатиричные ASCII числа (0...F), так и в английские имена числительные, так и юникодные русские имена числительные или ещё что-то, например Майя или кого там 20-ричные числа. А юникод это большой стандарт. В repr основной тип — text, он состоит из char, а char из int. char должен представлять один глиф. Я видел статью на хабре, где несколько эмодзи объединяли, получая один глиф. Ещё я хотел сделать так, чтобы в типе можно было прописать так: struct { func (self,кодинг,лейаут) r 'repr'; } a и тогда бы при пересылке a в repr(), оно бы исполнило функцию r. Но после того как я отказался от динамизации типов во время исполнения это ушло. Возможно в метапрограммирование laisi надо будет добавить такую возможность. Типа @template with T func ([T data]) repr := { @ifhas T repr return data.repr() @endif };
Получается, что библиотека repr будет сильно расти в своей функциональности, но это ничто по сравнению с math, где не только тригонометрические функции и логарифмы, но и пересечения фигур, преобразования координат, возможно будет дифференцирование и интегрирование по табличным данным, обсчёт площади и объёма фигур образованных математическими функциями, ух, так можно и математику выучить.
Я искал для линукса оффлайн-транслейтер, чтобы не использовать гугл-транслейтер, но не нашёл, который мне подошёл бы. Возможно придётся писать самому. С другой стороны это дополнительный XP, который даст мне лучше понимать мир.