Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, PC_2, Вы писали:
PC_>>Слушайте, вы выглядите как минимум смешно. PC_>>Один высмыкнул пример сортировки пузыря из контекста, всего лишь строчку, остальные как хорьки весело подхватили и принялись комментировать, клея несуразное. PC_>>Обьясняю еще для тех кто в танковой дивизии, код пузырька приведен в первом посте этой теме.
VD>Смотри, все харьки, задают глупые вопросы и не понимают твоего кода. VD>А между прочим ты обещал, что "Кодить на нем будет действительно просто и быстро". Какой же кодить, если люди даже понять его не могут?
они все понимают, даже уже разбирают код, просто притворяются.
Есть некоторые особи которые дебажат пузырек в надежде доказать мне что это не пузырек, но работа над ними еще ведется
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
PC_>Здравствуйте, samius, Вы писали:
S>>Здравствуйте, PC_2, Вы писали:
PC_>>>Здравствуйте, samius, Вы писали:
S>>>>В пузырьке элементы только "всплывают" а у тебя и "всплывают" и "тонут".
S>>Просто напиши эквивалентный код на С# и погляди на то что происходит в отладчике, если у тебя нет отладчика твоего чуда.
PC_>зачем мне писать я и так знаю что он делает.
Не знаешь PC_>А ты сиди с отладчиком и дебажь пузырек
Я дебажил не пузырек, а то что ты выдавал за него.
S>>Ты чего хотел достичь когда писал сюда? Вот что тебе нужно? Продемонтрировать лаконичность и понятность? Пока ты продемонстрировал то, что ты выдаешь некий код за решение неких задач, притом что этот код решает задачи либо какие-то другие, либо не так как заявлено. Что в общем-то ставит под сомнение лаконичность и понятность.
PC_>Что значит я выдаю некий код за решение неких задач. Я четко определил это множество задач уже работает на пре пре пре альфе, а эти еще в процессе. PC_>В чем вопрос ? Что ты хочешь мне доказать ? Что у меня чтото не работает ? Так это смешно, я не теоретик, я практик, и компьютер прекрасно понимает все мои идеи воплощенные инженерной мыслью в трансляторе РС.
Проблема в том, что оно делает не так, как ты ожидаешь. PC_>А ты иди с пузырьком в отладчике разбирайся, может в следующем семестре такая лаба тебе пригодится.
не психуй
PC_>Я не буду писать код на шарпе. Потому что реверс на шарпе написать это гемор на минут пять рабочего времени. PC_>Что еще не понятно ? PC_>Мне проще трижды на РС его написать, менее геморно.
Успехов
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>Что даст еще большее упрощение записи алгоритма, по сравнению с его математическим представлением ?
PD>Рекурсивная формула для вычисления чисел Фиббоначчи очень проста, но да поможет бог тому, кто вздумает вычислять их рекурсивно при достаточно больших N. PD>Иная простота хуже воровства.
Здравствуйте, PC_2, Вы писали:
PC_>Спасибо, посчитал что средняя программа на Немерле на простых примерах примерно в три раза — четыре раза длинее. PC_>Ну и малопонятней, учитывая количество шифтовых символов и т.д. Но последнее, как понимаете субьективно. Ну да ладно.
Фигурные скобки в немерле необязательны, он также поддерживает питоновский стиль определения структуры отступами. Но так или иначе, определение структуры в нем обязательно да.
PC_>Короткий и мощный синтаксис это же очень классно.
Конечно. Только еще нужно, чтобы этот синтаксис был понятен. Уверен, что если бы вы перед примерами описали грамматику языка (хотя бы в двух словах), то вопросов и негатива было бы меньше.
PC_>Вот когда у меня рождается в голове микро программа, я просто сажусь и набираю ее за минуту-две. PC_>Ну где еще такое возможно ? Программы настолько лаконичны, что я их держу в памяти, и их набирать могу на клавиатуре мобильного.
Ну это же совсем другой разговор. Я ведь не утверждаю, что такой язык не нужен. Сейчас, в качестве языка для прототипирования очень многие используют питон (мне, например, до сих пор тяжело реализовывать некоторые питоньи конструкции даже на немерле), именно потому что он позволяет максимально просто и кратко выражать довольно сложные мысли. Вот, к примеру, решение задачи о ферзях, упомянутой выше:
from itertools import permutations
n = 8
cols = range(n)
for vec in permutations(cols):
if n == len(set(vec[i]+i for i in cols)) == len(set(vec[i]-i for i in cols)):
print ("\n".join('.' * i + 'Q' + '.' * (n-i-1) for i in vec) + "\n===\n")
ну разве не прелесть? Я не просто так упомянул про математиков. Большинство программистов знакомы с грамматикой математических вычислений. Также, они знакомы с пересечением множеств грамматик известных им языков программирования и оно весьма велико, т.к. есть устоявшиеся стандарты записи многих языковых конструкций, функций высшего порядка, комбинаторов, паттернов в конце-концов и т.п. Большинство программистов мыслят именно этими категориями. Так к чему заставлять их помнить еще одну грамматику, какой бы короткой она не была, если можно сделать элементами этой грамматики те самые "кирпичики", которыми мыслят разработчики? Зачем свертку называть "/", если хаскелист будет думать о ней как о "foldr", немерлист как о "FoldRight" и т.п., если у этой ФВП уже есть название? Впрочем, если левую свертку назвать "\", отображение "|", а фильтрацию ":", то в этом возможно будет некий интуитивный смысл.
Т.е., идея здравая, только к вопросам грамматики нужно подойти т.о., чтобы не получить в итоге еще один полноценный развесистый язык, который бы пришлось заново учить.
PC_>Вместе с тем на стандартном языке Шарп, Немерла, Джава, написание таких программок превращается в маленький геморой.
Я бы, кстати, советовал, по крайней мере, на этапе экспериментов с языком, воспользоваться нашим макросом PegGrammar
. С одной стороны, реализовывать грамматику в нем — одно удовольствие, с другой, получив при этом все прелести немерла или шарпа на выбор, у вас была бы возможность бок о бок сравнивать их со своим языком, постепенно добавляя необходимые конструкции и выражения и не парясь по поводу парсинга, интерпретации и т.п. А когда грамматика устаканиться, то реализуете ее на чем вам хочется.
Реально меньше времени потратите на накладные расходы и сможете больше времени уделить самому языку.
Здравствуйте, PC_2, Вы писали:
PC_>Я не буду писать код на шарпе. Потому что реверс на шарпе написать это гемор на минут пять рабочего времени. PC_>Что еще не понятно ? PC_>Мне проще трижды на РС его написать, менее геморно.
Так когда ждать интерпретатор РС на самом РС? Его же где-то полчаса, максимум минут 45 писать наверное. Уже бы 5-я версия вышла, вместо пре пре пре альфы на шарпе.
Здравствуйте, Nuzhny, Вы писали:
N>Здравствуйте, kochetkov.vladimir, Вы писали:
PC_>>>Тоесть банально этот код не решает поставленную задачу. Точка.
KV>>Предлагаю со столь смелым заявлением отправляться сразу сюда: http://rsdn.ru/forum/decl/, а я пока за попкорном сбегаю. Троеточие...
N>Вообще-то этот вопрос неоднократно обсуждался на нескольких форумах как раз не в пользу твоего видения алгоритма сортировки. Даже оригинальная статья Хоара приводилась в этой теме
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Здравствуйте, PC_2, Вы писали:
KV>Конечно. Только еще нужно, чтобы этот синтаксис был понятен. Уверен, что если бы вы перед примерами описали грамматику языка (хотя бы в двух словах), то вопросов и негатива было бы меньше.
PC_>>Вот когда у меня рождается в голове микро программа, я просто сажусь и набираю ее за минуту-две. PC_>>Ну где еще такое возможно ? Программы настолько лаконичны, что я их держу в памяти, и их набирать могу на клавиатуре мобильного.
KV>Ну это же совсем другой разговор. Я ведь не утверждаю, что такой язык не нужен. Сейчас, в качестве языка для прототипирования очень многие используют питон (мне, например, до сих пор тяжело реализовывать некоторые питоньи конструкции даже на немерле), именно потому что он позволяет максимально просто и кратко выражать довольно сложные мысли. Вот, к примеру, решение задачи о ферзях, упомянутой выше:
KV>
KV>from itertools import permutations
KV>n = 8
KV>cols = range(n)
KV>for vec in permutations(cols):
KV> if n == len(set(vec[i]+i for i in cols)) == len(set(vec[i]-i for i in cols)):
KV> print ("\n".join('.' * i + 'Q' + '.' * (n-i-1) for i in vec) + "\n===\n")
KV>
И скольо это заняло времени закодить, кстате говоря ?
KV>ну разве не прелесть? Я не просто так упомянул про математиков. Большинство программистов знакомы с грамматикой математических вычислений. Также, они знакомы с пересечением множеств грамматик известных им языков программирования и оно весьма велико, т.к. есть устоявшиеся стандарты записи многих языковых конструкций, функций высшего порядка, комбинаторов, паттернов в конце-концов и т.п. Большинство программистов мыслят именно этими категориями. Так к чему заставлять их помнить еще одну грамматику, какой бы короткой она не была, если можно сделать элементами этой грамматики те самые "кирпичики", которыми мыслят разработчики? Зачем свертку называть "/", если хаскелист будет думать о ней как о "foldr", немерлист как о "FoldRight" и т.п., если у этой ФВП уже есть название? Впрочем, если левую свертку назвать "\", отображение "|", а фильтрацию ":", то в этом возможно будет некий интуитивный смысл.
KV>Т.е., идея здравая, только к вопросам грамматики нужно подойти т.о., чтобы не получить в итоге еще один полноценный развесистый язык, который бы пришлось заново учить.
Не стоит преждевременно натягивать штампы других языков.
Пускай себе Пайтоны и прочьи пасуться отдельно, а я отдельно со своими экспериментами.
А потом уж как-то будем сравнивать. Пока что лидер, на малом множестве микро программ, дальше поглядим.
PC_>>Вместе с тем на стандартном языке Шарп, Немерла, Джава, написание таких программок превращается в маленький геморой.
KV>Я бы, кстати, советовал, по крайней мере, на этапе экспериментов с языком, воспользоваться нашим макросом PegGrammar
. С одной стороны, реализовывать грамматику в нем — одно удовольствие, с другой, получив при этом все прелести немерла или шарпа на выбор, у вас была бы возможность бок о бок сравнивать их со своим языком, постепенно добавляя необходимые конструкции и выражения и не парясь по поводу парсинга, интерпретации и т.п. А когда грамматика устаканиться, то реализуете ее на чем вам хочется.
KV>Реально меньше времени потратите на накладные расходы и сможете больше времени уделить самому языку.
Это не нужно. Транслятор как не странно на шарпе пишется довольно просто. Все приложение может 20-30кб занимает
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
PC_>Ну упоминал я уже Влад эти языки, языки эти короткие но не понятные.
Да? Где? В прочем, раз ты с ними знаком, то видимо должен быть знаком и с их популярностью.
PC_>Используют юникод и тд тп. Я к проектированию синтаксиса подошел основательно. Птичести языка обьявлен бой.
В J вроде как юникод был не нужен. Только это еще хуже его испортило.
Не берусь оценивать корректность приводимого тобой кода, но как я не напрягался я смог понять в нем только 1..7.
PC_>Цель получить и короткий и понятный язык.
Ну, вторая цель, на первый взгляд пока что не очень достигнута.
Что до короткости, то повторяться не буду. Это просто никому не нужная цель.
VD>>Ну, и от краткости записи сами алгоритмы проще не становятся. Если бы это было так, то лучшим способом упростить программу было бы сжатие ее исходного кода zip-ом. VD>>Сегодня в языках ценится выразительность и средства декомпозиции (классы, функции высшего порядка, сопоставление с образцом, макросы). VD>>В прочем, возможно это изначально была шутка. Тогда она удалась.
PC_>Никаких шуток, есть рабочий транслятор и рабочий набор примеров и еще не вспаханое поле аспектного программирования.
Если это не шутка, то попробуй понять простую вещь. Никому в здравом уме не придет в голову писать фибоначи и пузырьковые сортировки. Их только в книгах для детей показывают. Да в религиозных проповедых функциональщиков.
Так что попробуй продемонстрировать (только с подробным объяснением) средства абстрации в твоем языке. Только они могут действительно серьезно сократить код.
PC_>Я хочу это неклюжее ООП заменить исключительно гибкой структурой построеной на распозновании классов.
Ну, вот и продемонстрируй свои идеи (а лучше код).
А сокращенные записи для перестановки элементов массива они мало кого удивят.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, 24, Вы писали:
24>Здравствуйте, PC_2, Вы писали:
PC_>>Я не буду писать код на шарпе. Потому что реверс на шарпе написать это гемор на минут пять рабочего времени. PC_>>Что еще не понятно ? PC_>>Мне проще трижды на РС его написать, менее геморно.
24>Так когда ждать интерпретатор РС на самом РС? Его же где-то полчаса, максимум минут 45 писать наверное. Уже бы 5-я версия вышла, вместо пре пре пре альфы на шарпе.
яже отвечал уже на этот вопрос.
Не реализован язык весь.
Реализована только часть связанная с Выражения.
А еще нужные Функции и гвоздь программы — Группы.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
PC_>Программа не может быть короче чем правила игры выписанные столбиком по определению.
Мне кстати, было бы интересно взглянуть на реализацию шахмат на вашем языке. Ибо попытки запихать эту игру в килобайт javascript-кода у труъ-джедаев закончились вот этим:
KV>>from itertools import permutations
KV>>n = 8
KV>>cols = range(n)
KV>>for vec in permutations(cols):
KV>> if n == len(set(vec[i]+i for i in cols)) == len(set(vec[i]-i for i in cols)):
KV>> print ("\n".join('.' * i + 'Q' + '.' * (n-i-1) for i in vec) + "\n===\n")
KV>>
PC_>И скольо это заняло времени закодить, кстате говоря ?
Это не мое, это с rosettacode, поэтому хз. Не думаю, что более нескольких минут
PC_>Это не нужно. Транслятор как не странно на шарпе пишется довольно просто. Все приложение может 20-30кб занимает
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Здравствуйте, PC_2, Вы писали:
PC_>>Программа не может быть короче чем правила игры выписанные столбиком по определению.
KV>Мне кстати, было бы интересно взглянуть на реализацию шахмат на вашем языке. Ибо попытки запихать эту игру в килобайт javascript-кода у труъ-джедаев закончились вот этим:
KV>
KV>реально интересно было бы увидеть реализацию этого алгоритма меньшим объемом кода и более понятной.
KV>P.S: Заметьте, это полноценные шахматы — с блекджэком доской, фигурами, ходами, играющим компьютером и и т.п. Заценить можно тут: http://nanochess.110mb.com/archive/tiny_chess_1.html
Кстате прикольно )
Я когдато писал шахматы на джаваскрипт, запихнул в 2,3кб и у меня думали значительно дольше.
В сети есть еще 5К Chess. Но эти интересны уже тем, что 1кб занимают ))
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
PC_>Это говнокод, к томуже на глаз там больше 2-3 килобайт. (тоесть читай в 5 раз длинее того, на что рассчитываю я)
Ты хоть читай, что пишешь. А то выходит, что ты хочешь ты рассчитываешь сделать говнокод в 5 раз короче. Думаю, всем по барабану какой длинны говнокод.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, PC_2, Вы писали:
PC_>>Это говнокод, к томуже на глаз там больше 2-3 килобайт. (тоесть читай в 5 раз длинее того, на что рассчитываю я)
VD>Ты хоть читай, что пишешь. А то выходит, что ты хочешь ты рассчитываешь сделать говнокод в 5 раз короче. Думаю, всем по барабану какой длинны говнокод.
Да не будет он выглядеть как говнокод, в том то и дело.
Тогда профитов у языка никаких не будет и тогда затею можно считать пустой.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
PC_>яже отвечал уже на этот вопрос. PC_>Не реализован язык весь. PC_>Реализована только часть связанная с Выражения. PC_>А еще нужные Функции и гвоздь программы — Группы.
Это не ответ на вопрос "когда?". Язык же ультракороткий и ультрапростой. Сколько времени нужно, чтоб его на шарпе написать до того минимума, который позволит писать интерпретатор на себе самом? Потом же разработка пойдёт с космической скоростью.
Здравствуйте, PC_2, Вы писали:
PC_>Здравствуйте, samius, Вы писали:
S>>Я дебажил не пузырек, а то что ты выдавал за него.
PC_>скачал транслятор ?
Да и вставил код первой версии пузырька
сверху справа
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
Здравствуйте, PC_2, Вы писали:
PC_>Здравствуйте, VladD2, Вы писали:
VD>>Здравствуйте, PC_2, Вы писали:
PC_>>>Это говнокод, к томуже на глаз там больше 2-3 килобайт. (тоесть читай в 5 раз длинее того, на что рассчитываю я)
VD>>Ты хоть читай, что пишешь. А то выходит, что ты хочешь ты рассчитываешь сделать говнокод в 5 раз короче. Думаю, всем по барабану какой длинны говнокод.
PC_>Да не будет он выглядеть как говнокод, в том то и дело. PC_>Тогда профитов у языка никаких не будет и тогда затею можно считать пустой.
Вот очень приблизительный набросок Шахмат, в 1 кб на РС
Просьба хорькам не разбирать код, тут еще ничего не работает !
Здравствуйте, 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_>Это ультрапонятный короткий и лаконичный код
А можно разжевать (очень подробно) все элементы этого кода.
Зачем в быстрой сортировке умножения?
Где здесь вообще функция которая вызывается рекурсивно? Или где и за счет чего здесь появляется рекурсия?
Пойми, то что ты демонстрируешь — это набор букв и знаков препинания. Без объяснений их можешь понять только ты.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.