- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
template <typename RetT> RetT Max() { return (RetT)0; }
template <typename RetT, typename ArgT, typename ... Args> RetT Max(ArgT Arg1, Args ... args)
{ RetT Temp = Max<RetT>(args ...); return ((RetT)Arg1 > Temp) ? ((RetT)Arg1) : (Temp); }
int main(int argc, char* argv[])
{
printf("%d\n", Max<int>(100, 200.356, false, -300));
return 0;
}
почему это?
в таком случае надо ограничивать рекурсию до одного параметра)))
Во-вторых, 'INT_MAX' больше, чем что угодно? А про тип 'unsigned int' вы слышали, с максимальным значением 'UINT_MAX'? А как насчет 'LONG_MAX'? 'LLONG_MAX'? А есть еще 'DBL_MAX'...
Если уж идти по тому пути, который избрал автор, то возвращать надо бы 'std::numeric_limits<RetT>::max()'.
Что же касается фразы "будут сравниваться по модулю", то тут надо следить за терминологией. В русском языке "сравнивать по модулю" означает сравнивать абсолютные величины чисел. Т.е. '-5' по модулю больше, чем '-2'. Такого сравнения, разумеется, в данном случае никак не получится если 'RetT' беззнаков и входные числа отрицательны.
Как тут лучше правильно сказать по-русски я навскидку даже и не соображу... Может сказать, что если 'RetT' беззнаков, то все отрицательные операнды будут [i]проинтерпретированы по модулю 2^N[i] (где N - количество битов в беззнаковом типе).
Далее. Лямбда-исчисление на тайплевеле.
Комментарии излишни. Но это совсем простенький примерчик и реализован в лоб. А вот так Олег Киселев опускает адептов крестов в 3 строчки: http://okmij.org/ftp/Computation/lambda-calc.html#haskell-type-level
Почему у вас такая ОБИДА при соприкосновении с настоящим программированием и CS?
Повторю тезис - кресты CANT INTO вычисления на тайплевеле.
Кстати, "CANT INTO" - это на каким языке? (Заранее извиняюсь за "уведение разговора в сторону" :))
God's language :-P
А так... Язык для перекладывания байтов, что с него взять.
http://www.ffconsultancy.com/languages/ray_tracer/comparison.html
ps Все утечки уже пофиксил?
вот все жду, когда убийцу крайзиса напишут на окамле...
---
Гей-дев это тупой конвеер. Там не нужны надежные и проверенные решения. Выпускай говно в срок и радуйся. Очень тупой конвеер.
можно существенно ускорить версию на С++, а если отказаться от виртуального вызова, то еще более существенно... что может предложить окамл в плане оптимизаций...
man MLton
man алгоритмические оптимизации
man rewriting using the monad/functor laws
Перекладывай байтики, не отвлекайся. Рабовладелец будет недоволен.
первое отпадает ибо чел юзал ocamlopt, что уже является компилятором...
второе возможно в С++ причем в более извращенной форме, с учетом особенностей оборудования (заметь в высокопроизводительной части есть виртуальные вызовы и грамотная статическая типизация их может зарешать)
ну и 3 опять таки возможно в С++...
то есть имеем типичный рекламный тест, где берется самая оптимальная реализация на "best language" и кусок говнокода на С++...
и к стати не показан расход памяти для обоих программ, уверен что С++ версия обходит конкурента даже не на проценты а в разы...
ну а теперь плескай опытом... какую крутую фичу писал на сем чуде или оно до сих пор не востребовано?
Нет, фанбой, невозможно, да ты даже не знаешь, что это. Prove me wrong.
`уверен что С++ версия обходит конкурента даже не на проценты а в разы...'
По количеству утечек на строку.
ps И разорванная нижняя дырка и `сперва добейся' все в один пост собрал,
или боишься что окажется что твой начальник сэкономил не взяв уровневого байтоеба, в надежде на то, что твои фейлы можно исправить, докупив более мощный проц и еще пару планок оперативки?
У Вас паттерны с губы свисают.
http://ru.wikipedia.org/wiki/Linux_(ядро)
или этого
http://ru.wikipedia.org/wiki/Haiku-OS
ну или этого
http://ru.wikipedia.org/wiki/Microsoft_Windows
ну или хотя бы возможность существования подобного на лиспе...
http://ru.wikipedia.org/wiki/L4_(микроядро)
http://ru.wikipedia.org/wiki/Haiku-OS
http://ru.wikipedia.org/wiki/Symbian_OS
реализовано на "экскрементах страуструпа" практически полностью...
Не говоря про http://en.wikipedia.org/wiki/Lisp_machine
Только никто крестовых фанбоев всерьез воспринимать не станет: демагогию развести может каждый, но факт остается фактом - повторить вышеприведенный пример на CPP невозможно.
Зрители сочувственно кивают в ответ)
Давно замечено.
guest - http://govnokod.ru/user/1
ну полный кретин йобана....
upd: и пох-уин ...
пох- только -уй.
Дельфи говно.
вы батенька чай не за наших будете?