Здравствуйте, 24, Вы писали:
24>Здравствуйте, PC_2, Вы писали:
PC_>>В сети есть еще 5К Chess. Но эти интересны уже тем, что 1кб занимают ))
24>Они интересны _только_ тем, что занимают 1 КБ. Никакой другой пользы от них нет.
Да, потому что это говнокод полученный за многие человекодни а может и месяцы.
Когда можно будет закодить шахматы или шашки вот так просто не напрягаясь с комментариями за пол часика,
это будет совсем другой формат.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, PC_2, Вы писали:
PC_>>Например Квик Сорт у меня выглядит примерно вот так, хоть пока и не работает в трансляторе:
PC_>>//7. квик сорт PC_>>E ( S.I.J<S.I.(S.I.Len/2)? PC_>> S.(I*2+1): PC_>> S.(I*2+2) PC_>> ),=S.I.J
PC_>>Это ультрапонятный короткий и лаконичный код
VD>А можно разжевать (очень подробно) все элементы этого кода. VD>Зачем в быстрой сортировке умножения? VD>Где здесь вообще функция которая вызывается рекурсивно? Или где и за счет чего здесь появляется рекурсия?
VD>Пойми, то что ты демонстрируешь — это набор букв и знаков препинания. Без объяснений их можешь понять только ты.
завтра, рулить пора, через 15 минут нужно уже на другом конце города быть ...
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
PC_>Вот очень приблизительный набросок Шахмат, в 1 кб на РС PC_>Просьба хорькам не разбирать код, тут еще ничего не работает !
Аккуратнее, распугаешь половину тех кто пытается хоть что-то разобрать.
Здравствуйте, PC_2, Вы писали:
PC_>Когда можно будет закодить шахматы или шашки вот так просто не напрягаясь с комментариями за пол часика, PC_>это будет совсем другой формат.
За полчаса, не напрягаясь, ты даже и подумать толком про шахматы не сможешь, не то что закодить на любом языке программирования.
Здравствуйте, PC_2, Вы писали:
PC_>Даже если у тебя на листике будет код той программы, 2 минуты тебе не хватит чтобы все эти закарючки просто без ошибочно набрать.
Ты серьезно думаешь, что скорость набора кода хоть что-то значит в программировании?
Если бы это было так, то скорость программирования примерно равнялась бы скорости набивки текста.
Время уходит на отладку, продумываине, развитие, подбор нужных типов... Скорость чтение кода (и понимания) в тысячи раз важнее скорости его набивки. Кроме того скорость набивки тоже мало зависит от объема набиваемого кода. Она скорее зависит от качества используемых абстракций и от интеллисенса.
PC_>У меня же квик сорт можно написать за 2 минуты, с нуля. На пузырек мне например хватит 30 секунд. И это факт, я считаю.
Я тебе и так напишу квик-сорт за две минуту. Причем на С. И что? Я их много писал. Только вот все не для работы, а так... для тестов.
PC_>А что мешает мне оформить функцию Сорт в функцию и ее также использовать ?
Ничего. Но это делает не важным то сколько символов заняло ее тело.
Лично мне вот интереснее не то сколько байт займет тело функции сортировки. А то насколько легко ей будет передать информацию о том как надо сравнивать элементы (не все же массивы целые содержат?), а так же с какой скоростью будет работать полученная функция.
PC_>Просто код библиотеки будет занимать например не 1000 строк, а 200. PC_>И написана будет быстрее раз в пять... И багов будет меньше, потому что код лаконичный, а не стеково-адресная арифметика в говнокоде...
Багов меньше не будет. Ты пишешь точно такой же императивы алгоритм. То что он короче выглядит, не значит, что он реально стал короче. Короче код делают абстракции. Вот выдели в быстрой сортировке в отдельную функцию разделение массивов и будет не только короче, но и проще. А это уже что-то.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, PC_2, Вы писали:
PC_>Кстате что там Немерла, PC_>ато както дошло дело до примеров и сразу быстренько в кусты.
Да все в порядке.
PC_>Однако практика критерий истины, не ?
Ага. Вот тебе простенькая (для Немерле) залачка. Напиши на своем языке парсер C#. Когда закончишь сравним объем кода.
Если это для тебя сложно, то можно помериться письками и на менее амбициозных задачах. Создай парсер JSON-а или XML-я и сравним код с немерловым... по всем критериям. Про скорость я уже даже молчу.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, PC_2, Вы писали:
M>>Что в нем понятного? Такая же невменяемая каша. Имхо
PC_>Сейчас нет времени обьяснять, но обьяснить код можно на пальцах. Уж поверьте. Все очень и очень просто.
Нет, уж. Ты потрудись хотя бы объяснить.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, PC_2, Вы писали:
PC_>Если при любой операции получилось это значение то в итоге тоже будет NULL. PC_>Фактически программист исбавлен от бесконечной проверки граничных условий.
Хочу осторожно заметить, что уязвимости null-dereference и integer overflow при должном старании и упорстве, также достижимы и на C#, на котором реализован ваш язык.
M>>E(Expr),=Expr2
M>> ^^-----------трэш, угар и содомия (с)
M>>
PC_>Что значит трешь. PC_>Это ультрапонятная операция прибавить еще один элемент к массиву
PC_>, — это операция конкатенации элементов. Например 1,2,3 получим массив из трех элементов PC_>А ,= это чтото вроде +=. Тоесть 1,2,3 ,= 4 получим 1,2,3,4. Все очень и очень просто !
Вот с объяснения таких соглашений и надо было начинать.
Но неперь становится очевидно, что приведенный в начале сообщения код не является реализацией классического квиксорта, так как не производит его по месту.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, PC_2, Вы писали:
PC_>Спасибо, но это не Квик сорт. Это его пародия. PC_>Алгоритм Квик сорт включает перемещение элементов на "одном участке" памяти. PC_>Тоесть не требует дополнительных ресурсов памяти.
PC_>Тоесть банально этот код не решает поставленную задачу. Точка.
А этот говнобред решает: PC_>>>//7. квик сорт PC_>>>E ( S.I.J<S.I.(S.I.Len/2)? PC_>>> S.(I*2+1): PC_>>> S.(I*2+2) PC_>>> ),=S.I.J
По твоим же объяснениям мы выяснили, что ,= добавляет элемент к массиву. Значит сортировки по месту мы уже не имеем. Так что дальше уже разбираться не в чем.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>А этот говнобред решает: PC_>>>>//7. квик сорт PC_>>>>E ( S.I.J<S.I.(S.I.Len/2)? PC_>>>> S.(I*2+1): PC_>>>> S.(I*2+2) PC_>>>> ),=S.I.J
VD>
VD>По твоим же объяснениям мы выяснили, что ,= добавляет элемент к массиву. Значит сортировки по месту мы уже не имеем. Так что дальше уже разбираться не в чем.
Именно что по месту. ,= вызывает метод Add у List<Number>
Здравствуйте, PC_2, Вы писали:
PC_>Здравствуйте, Mamut, Вы писали:
PC_>>>Да, кое что уже есть. PC_>>>Вот например наброски на другие типовые задачи.
PC_>>>
M>>Перл такой перл. Или K/J/Q такой K/J/Q.
M>>В общем, что этот код делает непонятно, что разбивает идею "ультрапонятности" в пух и прах
PC_>Ну тебе не понятно, мне понятно. PC_>В чем проблема ?
Проблема в утверждении, что «язык ультрапонятный». Этого не наблюдается
PC_>Любой язык без мануала жить не может. PC_>Даже чтобы обьяснить непосвященному что такое:
PC_>
PC_>Нужно ознакомить обучающегося с след. понятиями: PC_>1. Цикл. PC_>2. Декларация переменной PC_>3. Инициализация переменной PC_>4. Оператор меньше PC_>5. Инкремент. PC_>6. Массив PC_>7. Доступ к элементу массива
PC_>Очевидно этот список вкурить куда сложнее чем
PC_>
Конечно нет. В первом случае человеку (особенно уже знакомому с программированием) понятно:
— с чего начинается цикл
— где он заканчивается
— какие условия для его завершения
PC_>А так программы на языке черезвычайно живучи. PC_>Я даже позаимствовал из баз данных понятие NULL.
PC_>Если при любой операции получилось это значение то в итоге тоже будет NULL. PC_>Фактически программист исбавлен от бесконечной проверки граничных условий.
Угу. Теперь ему надо будет везде писать if результат_вычисления = NULL, то...
PC_>Ну какими макросами Немерла такое реализуешь ?
Здравствуйте, alexeiz, Вы писали:
A>Здравствуйте, PC_2, Вы писали:
PC_>>Когда можно будет закодить шахматы или шашки вот так просто не напрягаясь с комментариями за пол часика, PC_>>это будет совсем другой формат.
A>За полчаса, не напрягаясь, ты даже и подумать толком про шахматы не сможешь, не то что закодить на любом языке программирования.
Мне нравятся когда люди так говорят.
Это по крайней мере честно по отношению самому к себе, сказать во что веришь, а во что не веришь.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
VD>>Знакомься: VD>>* АПЛ VD>>* J VD>>* K
VD>>Не знаю насколько быстро на них писать, но читать их кода нельзя.
PC_>Ну упоминал я уже Влад эти языки, языки эти короткие но не понятные. PC_>Используют юникод и тд тп. Я к проектированию синтаксиса подошел основательно. Птичести языка обьявлен бой. PC_>Цель получить и короткий и понятный язык.
Угу. И этоговорит человек, который выдумывает
E 1..5\*
Это, видимо, понятнее, чем в q/j/k, ага
PC_>Никаких шуток, есть рабочий транслятор и рабочий набор примеров и еще не вспаханое поле аспектного программирования. PC_>Я хочу это неклюжее ООП заменить исключительно гибкой структурой построеной на распозновании классов.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, PC_2, Вы писали:
PC_>>Даже если у тебя на листике будет код той программы, 2 минуты тебе не хватит чтобы все эти закарючки просто без ошибочно набрать.
VD>Ты серьезно думаешь, что скорость набора кода хоть что-то значит в программировании? VD>Если бы это было так, то скорость программирования примерно равнялась бы скорости набивки текста.
VD>Время уходит на отладку, продумываине, развитие, подбор нужных типов... Скорость чтение кода (и понимания) в тысячи раз важнее скорости его набивки. Кроме того скорость набивки тоже мало зависит от объема набиваемого кода. Она скорее зависит от качества используемых абстракций и от интеллисенса.
Я много не думаю. Много думать вредно.
Я просто знаю что существующие языки заставляют неоправданно писать много кода и не являются далеко не идеалом построения систем.
Поэтому когда программист говорит что я это сделаю за час, лучше говорить что я это сделаю за три часа. Инструмент слишком не совершенен.
ООП генерит не очень поворотливые конечные автоматы с заменяемыми модулями.
Каждый язык программирования является "драйверным", поскольку довольно плотно сидит на архитектуре процессора.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, PC_2, Вы писали:
PC_>>Кстате что там Немерла, PC_>>ато както дошло дело до примеров и сразу быстренько в кусты.
VD>Да все в порядке.
PC_>>Однако практика критерий истины, не ?
VD>Ага. Вот тебе простенькая (для Немерле) залачка. Напиши на своем языке парсер C#. Когда закончишь сравним объем кода.
VD>Если это для тебя сложно, то можно помериться письками и на менее амбициозных задачах. Создай парсер JSON-а или XML-я и сравним код с немерловым... по всем критериям. Про скорость я уже даже молчу.
Парсер это довольно несложная задача.
К примеру на Шарпе у меня парсер РС, который парсит выражения, переменные,
скобки и многое многое другое и при этом парсер+транслятор с человеческим выводом ошибок и прекрасно быстро расширяемый занимает считанные тысячи строк.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН