|
|
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNага, и нету функций для описания гуя ))) ну это же отлично, что в языке нет лишнего, а все что нужно - берем в либах. Не, при таком подходе - лишнего нет только в брейнфаке, как уже тут правильно заметили. Гуя в JS (как таковом) тоже нет да и вообще ввод-вывод зависит от конкретного рантайма (и потому выносится в какие-то внешние объекты), а вот событийно-ориентированность - неотъемлемая часть любого рантайма, будь то браузер или stand-alone движок. И да, неужели наличие некислого встроенного набора функций (точнее, не функций, а встроенных типов Array, Number, Object, Function, String и т.д. с соответствующими методами, которых много, но среди которых тоже, имхо, нет ничего лишнего) - это минус, а правильный подход - как в Си - "ни шагу без инклудов"? ZyK_BotaNвот чистота и позволяет затратить меньше телодвижений. Ну вот я и попросил продемонстрировать, насколько меньше телодвижений надо затратить для обнаружения повторяющихся элементов в векторе произвольной длины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 20:58 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division XZyK_BotaNага, и нету функций для описания гуя ))) ну это же отлично, что в языке нет лишнего, а все что нужно - берем в либах. Не, при таком подходе - лишнего нет только в брейнфаке, как уже тут правильно заметили. Гуя в JS (как таковом) тоже нет да и вообще ввод-вывод зависит от конкретного рантайма (и потому выносится в какие-то внешние объекты), а вот событийно-ориентированность - неотъемлемая часть любого рантайма, будь то браузер или stand-alone движок. И да, неужели наличие некислого встроенного набора функций (точнее, не функций, а встроенных типов Array, Number, Object, Function, String и т.д. с соответствующими методами, которых много, но среди которых тоже, имхо, нет ничего лишнего) - это минус, а правильный подход - как в Си - "ни шагу без инклудов"? ZyK_BotaNвот чистота и позволяет затратить меньше телодвижений. Ну вот я и попросил продемонстрировать, насколько меньше телодвижений надо затратить для обнаружения повторяющихся элементов в векторе произвольной длины. ты бы еще пример "2+2" попросил привести приемущества фп - проявляются в сложных системах, а так вот - дословно переписанный код: Код: sql 1. 2. 3. 4. 5. 6. а то что ассоциативный массив(как и событийное программирование) - находиться в библиотеке - дак это не минус языка ) ну и то что в хаскеле все по строже(не являются ложью, не отсутствие элемента, не ноль) - это тоже, имхо, не минус языка. по быстродействию не тестил, но уверен - что обгонит жс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 22:39 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division Xа вот событийно-ориентированность - неотъемлемая часть любого рантайма вот что за бред. какое к рантайму оно отношение имеет? это ты сам придумал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 22:42 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNвот что за бред. какое к рантайму оно отношение имеет? это ты сам придумал? Ничего не придумывал, всё на событиях. Серверный рантайм , например Клиентский рантайм ZyK_BotaNа так вот - дословно переписанный код: Код: sql 1. 2. 3. 4. 5. 6. Ну, я постил решение ещё короче... Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. ...но оно оказалось фтристараз (c) медленнее вышеизложенного. ZyK_BotaNприемущества фп - проявляются в сложных системах топикстартерЗачем писать программы сложно и долго, когда можно просто и легко? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 23:46 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division XZyK_BotaNвот что за бред. какое к рантайму оно отношение имеет? это ты сам придумал? Ничего не придумывал, всё на событиях. Серверный рантайм , например Клиентский рантайм ZyK_BotaNа так вот - дословно переписанный код: Код: sql 1. 2. 3. 4. 5. 6. Ну, я постил решение ещё короче... Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. ...но оно оказалось фтристараз (c) медленнее вышеизложенного. ZyK_BotaNприемущества фп - проявляются в сложных системах топикстартерЗачем писать программы сложно и долго, когда можно просто и легко?да, я тупанул, и делал вставку каждый раз, а не когда ноль, могу переделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 23:50 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division X, ну и я надеюсь, что ты тестировал хаскель код, не в интерпретаторе, а скомпилировал, а потом запустил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 23:50 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division XZyK_BotaNвот что за бред. какое к рантайму оно отношение имеет? это ты сам придумал? Ничего не придумывал, всё на событиях. Серверный рантайм , например Клиентский рантайм ZyK_BotaNа так вот - дословно переписанный код: Код: sql 1. 2. 3. 4. 5. 6. Ну, я постил решение ещё короче... Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. ...но оно оказалось фтристараз (c) медленнее вышеизложенного. ZyK_BotaNприемущества фп - проявляются в сложных системах топикстартерЗачем писать программы сложно и долго, когда можно просто и легко? ну и я не про катраткость, выше я сказал за счет чего краткость: " а то что ассоциативный массив(как и событийное программирование) - находиться в библиотеке - дак это не минус языка ) ну и то что в хаскеле все по строже(не являются ложью, не отсутствие элемента, не ноль) - это тоже, имхо, не минус языка. " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 23:51 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNDivision X, ну и я надеюсь, что ты тестировал хаскель код, не в интерпретаторе, а скомпилировал, а потом запустил? Хаскелевский не тестировал пока вообще. Я писал о том, что вот это: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. хоть и короче даже хаскелевского кода, но за счёт двух вызовов *indexOf работает фтристараз медленнее этого: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Вывод - или шашечки, или ехать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 23:55 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division Xо за счёт двух вызовов *indexOf работает фтристараз медленнее этого: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. никакого вывода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 23:58 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division XZyK_BotaNDivision X, ну и я надеюсь, что ты тестировал хаскель код, не в интерпретаторе, а скомпилировал, а потом запустил? Хаскелевский не тестировал пока вообще. Я писал о том, что вот это: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. хоть и короче даже хаскелевского кода, но за счёт двух вызовов *indexOf работает фтристараз медленнее этого: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Вывод - или шашечки, или ехать.а работает прошлый медленнее, так как поиск о(н) а не лог2(н) что в моем решении, что в товем при поиске в мапе = лог2(н) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 23:59 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
кстати, раз уже начали про быстродействие и краткость, вот примитивная задача(с решением) напиши ее на js? что-бы искала 100_000_000-й элемент: авторСуществует знаменитая задача, впервые сформулированная Р. Хэммингом: породить в возраста- ющем порядке и без повторений все положительные целые числа, у которых нет других простых делителей, кроме 2, 3 и 5. Очевидное решение состоит в том, чтобы перебирать все натуральные числа по очереди и проверять, есть ли у них простые множители помимо 2, 3 и 5. Однако эта процедура весьма неэффективна, поскольку чем больше числа, тем меньшая их доля соответствует условию. Применим альтернативный подход: назовем искомый поток чисел S и обратим внимание на следующие факты: • S начинается с 1. • Элементы (scale-streams 2) также принадлежат S • То же верно и для (scale-stream S 3) и (scale-stream S 5). • Других элементов S нет. Теперь требуется только соединить элементы из этих источников. Для этого мы определяем процедуру merge, которая сливает два упорядоченных потока в один упорядоченный поток, убирая при этом повторения вот решение на хаскеле: ZyK_BotaN Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. вот ответ: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 00:04 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
был былинный топик, где императивщики - разбили свои копья об эту задачу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 00:10 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaN, Она решает какие-то практические вопросы? Тем не менее, завтра попробую. Сейчас уже не соображаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 00:15 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division XZyK_BotaN, Она решает какие-то практические вопросы? Тем не менее, завтра попробую. Сейчас уже не соображаю. ну я твою же решал )) з.ы. я смог на сишке, юзаю круто оптимизированную либу длинной арифмитики - сюелать более быстрое решение, но в разы - менее понятное(с ручным управлением памятью) на языках со сборкой мусора - не видел решения быстрее и чем на хаскеле. . жду решения . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 00:19 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNбыл былинный топик, где императивщики - разбили свои копья об эту задачу??? Элегантное решение придумать может быть сложно, но чтобы не решить вообще? Каждое число последовательности характеризуется тройкой целых степеней - т.е. по сути мы обходим узлы трёхмерной сетки (причём подавляющее большинство узлов сравнивается быстро, а следующий узел заведомо находится в тонком слое этого пространства). Навскидку, даже без оптимизаций поиск n-ного числа (при log 2 (n)<MaxInt) требует O(n 2/3 ) памяти и O(n 5/3 ) времени - долго, но для n=10 8 не невозможно, да и соптимизировать по времени построение слоя для следующего шага наверняка можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 11:12 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
AbstractionZyK_BotaNбыл былинный топик, где императивщики - разбили свои копья об эту задачу??? Элегантное решение придумать может быть сложно, но чтобы не решить вообще? Каждое число последовательности характеризуется тройкой целых степеней - т.е. по сути мы обходим узлы трёхмерной сетки (причём подавляющее большинство узлов сравнивается быстро, а следующий узел заведомо находится в тонком слое этого пространства). Навскидку, даже без оптимизаций поиск n-ного числа (при log 2 (n)<MaxInt) требует O(n 2/3 ) памяти и O(n 5/3 ) времени - долго, но для n=10 8 не невозможно, да и соптимизировать по времени построение слоя для следующего шага наверняка можно. ZyK_BotaNз.ы. я смог на сишке, юзаю круто оптимизированную либу длинной арифмитики - сюелать более быстрое решение, но в разы - менее понятное(с ручным управлением памятью) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 11:16 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Abstractionдаже без оптимизаций поиск n-ного числа (при log 2 (n)<MaxInt) требует O(n 2/3 ) памяти можно про память поподробней? и что за MaxInt имеется ввиду? з.ы. а императивщики сломали копья, не потому, что на имп языках нельзя решить, а потому что были уверенны что решение на связных списках - не наш метод, и использовали массивы с прямым доступом. вот и не смогли написать корректное решение для поиска 100_000_000-го элемента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 11:21 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNможно про память поподробней? и что за MaxInt имеется ввиду?MaxInt - это о том, что не требуется использовать длинную арифметику для степеней. То есть, у нас есть сетка степеней 2, 3, 5 (три степени свободы); есть текущее число. Число, следующее за текущим (a,b,c), принадлежит множеству {(x,y,z)|x*ln(2)+y*ln(3)+z*ln(5)>a*ln(2)+b*ln(3)+c*ln(5)>(x-1)*ln(2)+(y-1)*ln(3)+(z-1)*ln(5)}. Т.е. это плоский слой, содержащий t 2 элементов, где t - "характерный линейный размер" на текущем шаге; к этому моменту рассмотрено порядка t 3 элементов. Элементы слоя имеет смысл хранить в памяти, в упорядоченной структуре, поскольку для некоторых из них процедура точного сравнения требует длинной арифметики и не должна проделываться на каждом шаге. Это так, идея решения, код не писал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 11:37 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
AbstractionZyK_BotaNможно про память поподробней? и что за MaxInt имеется ввиду?MaxInt - это о том, что не требуется использовать длинную арифметику для степеней. То есть, у нас есть сетка степеней 2, 3, 5 (три степени свободы); есть текущее число. Число, следующее за текущим (a,b,c), принадлежит множеству {(x,y,z)|x*ln(2)+y*ln(3)+z*ln(5)>a*ln(2)+b*ln(3)+c*ln(5)>(x-1)*ln(2)+(y-1)*ln(3)+(z-1)*ln(5)}. Т.е. это плоский слой, содержащий t 2 элементов, где t - "характерный линейный размер" на текущем шаге; к этому моменту рассмотрено порядка t 3 элементов. Элементы слоя имеет смысл хранить в памяти, в упорядоченной структуре, поскольку для некоторых из них процедура точного сравнения требует длинной арифметики и не должна проделываться на каждом шаге. Это так, идея решения, код не писал. не понял к чему ты, хотел бы на решение посмотреть. а на счет сравнения длинных чисел - не понял, мы же на больше меньше сравниваем, не думаю что там проблемы с быстродействием будут. имхо - основная проблема решения которое я привел - постоянная аллокация памяти для каждого последующего элемента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 11:45 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division Xmaytonпропущено... По поводу ЕС5 - я вообще невкурсе что это такое. ES5 - ECMAScript 5. Стандарт Javascript, реализованный во всех нормальных браузерах и IE, начиная с 9, а также в stand-alone платформах а-ля nodeJS. Так Javascript самый что ни на есть функциональный язык. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 12:18 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division XZyK_BotaN, Она решает какие-то практические вопросы? Тем не менее, завтра попробую. Сейчас уже не соображаю. Думаю, что нет. Но это интересная мозго-ломка, котороая позволит развить свой закисший мозк от практичной унылой серости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 12:27 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division X Код: javascript 1. 2. 3. Я так понимаю, в JS нет класса Set даже с импортами :) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 14:00 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNз.ы. а императивщики сломали копья, не потому, что на имп языках нельзя решить, а потому что были уверенны что решение на связных списках - не наш метод, и использовали массивы с прямым доступом. вот и не смогли написать корректное решение для поиска 100_000_000-го элемента. Ну если по-совести, то алгоритм вам был предоставлен. А вот искать библиотеки работы с длинной арифметикой - вот тут да, желания никакого не было))). А с изначальной задачей, получением первых 1000 или 10000 элементов вообще проблем не возникло))). Это вы затем начали придумывать всякие сложности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 14:58 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
kDnZPZyK_BotaNз.ы. а императивщики сломали копья, не потому, что на имп языках нельзя решить, а потому что были уверенны что решение на связных списках - не наш метод, и использовали массивы с прямым доступом. вот и не смогли написать корректное решение для поиска 100_000_000-го элемента. Ну если по-совести, то алгоритм вам был предоставлен. А вот искать библиотеки работы с длинной арифметикой - вот тут да, желания никакого не было))). А с изначальной задачей, получением первых 1000 или 10000 элементов вообще проблем не возникло))). Это вы затем начали придумывать всякие сложности. ну я для языка си - нашел библиотеку(с помощью которой сделал по скорости хаскель) а так - не совсем верно про библиотеку, там писали заведомо более медленные решения, а на счет "алгоритм вам был предоставлен", это да, я и не говорил, что я его придумал, вот только императивщики доказывали что алгоритм плохой, и нужно решение на массивах строить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 20:49 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=37796616&tid=1342261]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
186ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
83ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 558ms |

| 0 / 0 |
