Факториалы

Sep 26, 2012 22:20

Тут вот ushastyi сетует, что, мол, факториал на J медленно считается, а на хаскеле быстро.

Ну и всё понятно - вон, сами посмотрите (и не спрашивайте, как я это нашёл).

XF2(jtxtymes){A z;I an,*av,c,d,e,i,j,m=XBASE,n,*v,wn,*wv,*zv ( Read more... )

Leave a comment

Comments 25

blacklion September 27 2012, 06:31:44 UTC
На этом правда можно писать?

Reply

kurilka September 27 2012, 06:34:09 UTC
На сях?

Reply

blacklion September 27 2012, 07:59:44 UTC
И после этого perl ругают за write-only. Я тут C просто не узнал, хотя написал на них десятки тысяч строк кода.

Reply

_winnie September 27 2012, 08:24:52 UTC
ИМХО, код расчитанный на то что бы въезжать в часто используемые I,AN, AV хотя бы час, а не две минуты, имеет право так выглядеть. Это не С, это DSL в С. Любая математическая статья вводит свои i,d,z,k,j,С3. Такой код не хуже :)

Видно, что автор его старательно выравнивал в двумерном пространстве экрана именно для читающих.

Если нужно сделать поддерживаемый и оптимизированный код транслятора без копипасты, то он как-то так и выглядит. В исходниках питона тоже такое встречается, генерация одинакового кода для *,>>,<<,|,+,

Кстати, если зажигается любопытство "а что это за дефайн" и лень скачивать архив, то можно посмотреть https://github.com/seanstickle/J/blob/master/j.h

Reply


sassa_nf September 27 2012, 08:20:08 UTC
ну, длинное умножение. а что неоптимально?

Reply

antilamer September 27 2012, 08:24:30 UTC
Алгоритм наивный.

Reply

sassa_nf September 27 2012, 08:32:35 UTC
ок, а как выглядит не наивный?

Reply

antilamer September 27 2012, 08:35:13 UTC
См. google:// GMP Multiplication - Карацуба там всякий.

Reply


ushastyi September 27 2012, 13:25:49 UTC
Нет, а правда, как ты это нашел?! :)

Reply

antilamer September 27 2012, 15:06:32 UTC
У каждого файла .c в четвертой строке комментарий про его назначение - так нашел файл. В файле чисто случайно нашел что-то, похожее на times - "tymes" :)

Reply

sassa_nf September 27 2012, 15:59:19 UTC
tymes... :) а я думал, j tx ty mes

Reply

_winnie September 27 2012, 20:28:41 UTC
Ещё универсальный вариант - собрать, подключиться отладчиком, сделать breakpoint. Я так в скомпилированный .NET-код и Java смотрел.

Reply


ex_juan_gan September 27 2012, 19:27:48 UTC
Какая странная хрень.

Приходи лучше сегодня на лекцию про эллиптические кривые.

Reply

antilamer September 27 2012, 19:49:00 UTC
Не, сегодня не могу, увы. А хотелось бы. Позови Ваню лучше.

Reply

ex_juan_gan September 27 2012, 22:09:49 UTC
c u there then

Reply


Leave a comment

Up