Re[119]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 28.12.10 23:18
Оценка:
Здравствуйте, samius, Вы писали:

S>Если генераторы будут описаны в виде предикатов, то они ничего этого не смогут сделать. Об этом я тут и спорю с тобой.


А как предикатом описать точки, пробегаемые методом Ньютона?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[101]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.12.10 23:28
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, samius, Вы писали:


S>>Вставим куда-нибудь. Например будем сразу выдавать для каждой строки уникальные перестановки. Это для чего-то важно на данный момент?


E>Ну, как бы, хотелось как-то одинаково описывать

E>"множество пятибуквенных строк", "множество пятибуквенных строк без повторов" и "множество пятибуквенных строк, содержащих хотя бы один повтор"...
Если хочешь писать одинаково в ущерб эффективности — загляни в код Владимира на Nemerle. Там генератор параметризуется предикатом.

S>>В том варианте — да, выкинул четные. А в варианте с эффективным генератором я выкинул все, и более того закэшировал найденные простые, так что проверку очередного числа я смогу сделать эффективнее, чем это сделает IsPrime(Int). Генератор выкидывает все непростые, твой фильтр только до i%%7, а остальное проверяет каждый раз не сильно эффективно.

E>Я не понимаю тебя. Сначала ты сказал про функцию. Теперь речь идёт о генераторе простых чисел, который помнит все предущие. Так? Такой генератор имеет такую особенность, что его не распараллелишь так просто.
Ты предлагаешь выкинуть все что не распараллеливается просто? Язык-то общего назначения, или для распараллеливания того что просто параллелится?
Я вперед написал что будет генератор простых. А потом показал что даже перебор с фильтрацией на генераторах не уступает перебору по предикату. А даже и выиграет, если генераторов будет по числу вычислителей (не в КУДЕ).

E>На RS сейчас такие писать неудобно. Это правда.

Неудобно — это мягко сказано.

S>>Есть генератор размещений. Если нет — он пишется.

E>Как и на чём? На RS? Или это должна быть некая встроенная в язык конструкция?
Мы так скачем между языками, что все путается.
Я утверждаю только то что генератор пишется на языках общего назначения на раз. Если на RS такого не будет возможности писать пользовательские генераторы, то возможности РС генераторов не будут настолько же полными как в том же C#.
Как это будет записываться на РС — я даже не пытался думать. Очевидно что нужен хотя бы базовый синтаксис определения функций.
Re[91]: Ультракороткий язык программирования RS
От: ambel-vlad Беларусь  
Дата: 28.12.10 23:30
Оценка:
Здравствуйте, Erop, Вы писали:

AV>>Какие претензии? Данный кусок программы прекрасно работает, читаешь и прост в поддержке.


E>Ну первый массив, например, вызывает у меня некоторые вопросы...


Давай их сюда. Но есть маленькое замечание. См. ниже

E>А про "прост в поддержке" -- это ты загнул, IMHO. Насколько я понял там у вас весь код уже запутался...


Где код запутался? Этому коду уже года 4. И он подвергался неоднократным дописываниям. Причем не одним человеком. И ни у кого не возникало проблем с пониманием кода.

AV>>Это я ступил уже. Голова не варит слегка. второй массив будет примерно таким [((1,4), (5,5)), ((1,4), (6,6)), ((1,4), (7,7)) ...] Прошу прощения за ошибку.

E>А! Это вы типа такую подпоследовательность хотите вырезать просто? Ну тоже не сложно на RS записать. Если операция конкатенации переборщиков позволяет свёртку по себе.

E>x.((y.I.J.1..y.I.J.2)\J\,) -- это у нас переборщик переборщиков исходных подпоследовательностей.



AV>>Нет смысла.

E>Это я согласен. В примере смысл угадывается с трудом

Какие претензии к смыслу? Но не забывай, что это искуственный пример, который я придумал за одну минуту. В реальности код обсчитывает совсем другую модель. Причем достаточно сложную. Я даже не знаю всех ее деталей.

AV>>А толку? Если она все равно не будет соответствовать языку.

E>А зачем писать такую, которая не будет соответствовать?

Да проблема в другом. Автор меняет язык по первому желанию левой пятки.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[120]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.12.10 23:31
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, samius, Вы писали:


S>>Если генераторы будут описаны в виде предикатов, то они ничего этого не смогут сделать. Об этом я тут и спорю с тобой.


E>А как предикатом описать точки, пробегаемые методом Ньютона?

Вот и я об этом. Одних предикатов явно недостаточно для полноты языка.
Re[102]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 29.12.10 00:03
Оценка:
Здравствуйте, samius, Вы писали:

E>>Ну, как бы, хотелось как-то одинаково описывать

E>>"множество пятибуквенных строк", "множество пятибуквенных строк без повторов" и "множество пятибуквенных строк, содержащих хотя бы один повтор"...
S>Если хочешь писать одинаково в ущерб эффективности — загляни в код Владимира на Nemerle. Там генератор параметризуется предикатом.
1) Я видел код Владимира
2) Я хотел бы одинаково, но оставить шанс оптимизатору.

S>Ты предлагаешь выкинуть все что не распараллеливается просто? Язык-то общего назначения, или для распараллеливания того что просто параллелится?

Нет, не предлагаю. Просто мне так кажется, что перебор множества, и некая рекурентно заданная последовательность -- это разные истории...

С точки зрения алгоритмической генератор простых мало отличается от генератора чисел Фибоначи, например...

E>>На RS сейчас такие писать неудобно. Это правда.

S>Неудобно — это мягко сказано.
Ну можно же такой массив описать. Фибоначи же мы генерить умеем?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[92]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 29.12.10 00:09
Оценка:
Здравствуйте, ambel-vlad, Вы писали:

AV>Где код запутался? Этому коду уже года 4. И он подвергался неоднократным дописываниям. Причем не одним человеком. И ни у кого не возникало проблем с пониманием кода.


Ну ты раньше писал, что в реале функцию process уже подправили и она теперь намного сложнее...
Если эта функция всё ещё просто итерирует массив заданий, формирует аргументы и зовёт обработчики, то это для неё тревожный симптом...

Что касается вопросов, то мне несколько не понятно, зачем хранить в одном массиве столь разнородные данные. Намного логичнее было бы хранить где-то отдельно 1х, 2х, 3х, 4х, или как ты их там назвал? И отдельно списки интересующих длительностей...

AV>Какие претензии к смыслу? Но не забывай, что это искуственный пример, который я придумал за одну минуту. В реальности код обсчитывает совсем другую модель. Причем достаточно сложную. Я даже не знаю всех ее деталей.

Претензии простые. Я смысла в примере не уловил.

AV>Да проблема в другом. Автор меняет язык по первому желанию левой пятки.

Ну так задача же в том, чтобы разработать дизайн языка и удобный синтаксис... Так что, по идее, результатом обсуждений и должны быть изменения в языке. Не?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[121]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 29.12.10 00:09
Оценка:
Здравствуйте, samius, Вы писали:

E>>А как предикатом описать точки, пробегаемые методом Ньютона?

S>Вот и я об этом. Одних предикатов явно недостаточно для полноты языка.

Дык это очевидно...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[117]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 29.12.10 00:12
Оценка:
Здравствуйте, samius, Вы писали:

E>>Не понимаю. Тебе что ли пофиг какие именно строки перебирать? Главное, чтобы их число совпадал?

S>Алгоритму пофиг.
S>Не важно. Просто я беру алфавит, и прошу показать мне страницу №09872345 с этими паролями. С генерацией от указанного номера это сделать можно, а с генерацией по последнему сохраненному паролю — нет.
Можно, но смысл не ясен.

S>Я не настаиваю на условии задачи. Я настаиваю на том что продолжение с номера и продолжение с размещения — это разные задачи и разница может быть значительна.

S>фтопку пример с паролями
Угу.

S>Тебе не понятно как из сочетать именно в RS? Для других языков вроде бы все понятно...

Для других языков тоже не особо хорошо всё.

E>> Но надо родить какой-то формализм, который позволяет с ними работать.

S>Я думаю что он уже рожден. Я не знаю лямбда счисления, но думаю что порывшись там можно найти что-то, что тебя интересует. Или спросить тех кто знает.
Лямбда -- это про то, как рекурсивно писать функции. Это совсем не про то. Скорее тут надо на автоматы смотреть, а не на люмбды.

S>Естественно. На C# эти переборщики написаны на самом C#. Ну почти. Там на самом деле есть трюк в компиляторе, который преобразует код в конечный автомат. Но на том же хаскеле ничего подобного. Спецсинтаксис есть для такого комбинирования генераторов, но он лишь короткая форма записи и только.


Вот, к автомату всё выводит, на самом деле.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[65]: Ультракороткий язык программирования RS
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 29.12.10 01:20
Оценка:
Здравствуйте, Erop, Вы писали:

E>M.I.J*V.J\J\+

E>Что и как тут сделает библиотека?

Ну вот например, макробиблиотека сделает как-то так: Re[4]: macro \
Автор: _nn_
Дата: 23.12.10


... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[103]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 29.12.10 04:52
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, samius, Вы писали:


S>>Ты предлагаешь выкинуть все что не распараллеливается просто? Язык-то общего назначения, или для распараллеливания того что просто параллелится?

E>Нет, не предлагаю. Просто мне так кажется, что перебор множества, и некая рекурентно заданная последовательность -- это разные истории...
Согласен. Причем эффективно перебрать множество рекурентной последовательностью иногда можно, а наоборот —

E>С точки зрения алгоритмической генератор простых мало отличается от генератора чисел Фибоначи, например...

похож, да

E>>>На RS сейчас такие писать неудобно. Это правда.

S>>Неудобно — это мягко сказано.
E>Ну можно же такой массив описать. Фибоначи же мы генерить умеем?
нет. Умеем получать набор наперед заданной длины и только. А такой набор нельзя скомбинировать с чем-то, что будет получать элементы до те пор, пока выполняется условие.
Re[122]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 29.12.10 04:53
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, samius, Вы писали:


E>>>А как предикатом описать точки, пробегаемые методом Ньютона?

S>>Вот и я об этом. Одних предикатов явно недостаточно для полноты языка.

E>Дык это очевидно...

И о чем спорили?
Re[118]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 29.12.10 05:08
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, samius, Вы писали:


S>>Не важно. Просто я беру алфавит, и прошу показать мне страницу №09872345 с этими паролями. С генерацией от указанного номера это сделать можно, а с генерацией по последнему сохраненному паролю — нет.

E>Можно, но смысл не ясен.
Можно, но если пароля со страницы с нужным номером нет, то придется генерить все предыдущие страницы.

S>>Тебе не понятно как из сочетать именно в RS? Для других языков вроде бы все понятно...

E>Для других языков тоже не особо хорошо всё.
Что там не хорошо с генераторами?

E>Лямбда -- это про то, как рекурсивно писать функции. Это совсем не про то. Скорее тут надо на автоматы смотреть, а не на люмбды.

Смотри Машину Тьюринга

S>>Естественно. На C# эти переборщики написаны на самом C#. Ну почти. Там на самом деле есть трюк в компиляторе, который преобразует код в конечный автомат. Но на том же хаскеле ничего подобного. Спецсинтаксис есть для такого комбинирования генераторов, но он лишь короткая форма записи и только.


E>Вот, к автомату всё выводит, на самом деле.

Не факт. Для lazy — автомат. Для eager — сразу результат. Но записывается все единообразно. Скажем что бы переключить генератор паролей на F#/Nemerle в активный/ленивый режим, достаточно изменить несколько символов в записи.
Re[58]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 29.12.10 06:25
Оценка: -1 :)
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Mamut, Вы писали:


M>>>>Вы явно клоны.

M>>Вы явно клоны.

E>Заело? Ты в объективную реальность веришь?


Ты иди читай, что пишут, а не что говорят голоса в твоей голове


dmitriid.comGitHubLinkedIn
Re[58]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 29.12.10 06:36
Оценка: +2
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Mamut, Вы писали:


E>>>Да? Объясни, что было конструктивного в твоём сообщении о том, что для того, чтобы ввести в язык RND PC_2 понадобилось её как-то назвать?


M>>Вы явно клоны. Перчитай внимательно мое сообщение. Там говорится о том, что PC_2 обсирает другие языки, в частности, из-за того, что там много встроенных функций, в ответ на что я говорю что? Иди читай


E>А что в этом конструктивного?


E>Суть вашего диалога:

E>Ты: А вызови функцию RND
E>Он: Ну так будет
E>Ты: А! Функция! Функция!

E>А ещё ты синус мог попросить вычислить, например...


Это какое-то недоступное мне альтернативное мышление. PC_2 мягко говоря обсирает другие языки, в частности, за использование встроенных и библиотечных функций. И при этом сам без зазрений совести вводит встроенные функции в язык.

Конструктив тут прямой: разуть глаза и начать адекватный диалог.

Хых. Не говоря уже о том, что постоянно нападает на «лифтовые символы», а сам называет крутым код, содержащий такое:
^('s,=' + a)


На десять символов 6 даром не нужных «шифтовых», но это не быдлокод, нененене, быдлокод — это любой другой язык, в котором есть встроенные функции, «шифтовые» символы и т.п. То, что его язык содержит все то же самое, его абсолютно не смущает. Он же — гуру, ага


dmitriid.comGitHubLinkedIn
Re[59]: К вопросу о клонах и голосах в голове...
От: Erop Россия  
Дата: 29.12.10 06:39
Оценка:
Здравствуйте, Mamut, Вы писали:

M>>>>>Вы явно клоны.

M>>>Вы явно клоны.

E>>Заело? Ты в объективную реальность веришь?

M>Ты иди читай, что пишут, а не что говорят голоса в твоей голове

Смотря кто пишет...
Вот ты пишешь о клонах, например

Я специально в отдельную подветку написал, чтобы ты всё-таки понял, что твоя версия не выдерживает никакой критики...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[119]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 29.12.10 06:42
Оценка:
Здравствуйте, samius, Вы писали:
E>>Лямбда -- это про то, как рекурсивно писать функции. Это совсем не про то. Скорее тут надо на автоматы смотреть, а не на люмбды.
S>Смотри Машину Тьюринга
При чём тут МТ?

E>>Вот, к автомату всё выводит, на самом деле.

S>Не факт. Для lazy — автомат. Для eager — сразу результат. Но записывается все единообразно. Скажем что бы переключить генератор паролей на F#/Nemerle в активный/ленивый режим, достаточно изменить несколько символов в записи.

Да это всё фигня. Вопрос в том, как эффективно реализовать такие запросы, а не в том, где какой флажок можно поставить. В идеале такого рожа флажки RS должен ставить сам.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[57]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 29.12.10 06:43
Оценка: 3 (1)
Здравствуйте, PC_2, Вы писали:

PC_>Здравствуйте, Mamut, Вы писали:


M>>У тебя будет точно такое же, не боись. Вон, некую R тебе уже пришлось вводить, чтобы разобраться со случайными числами.


PC_>R или лучше RND это абсолютно легальная фундаментальная функция,

PC_>она возвращает случайную последовательность чисел.
PC_>Почти в любом языке есть — встроено.

Тебя не смущает, что ты обсираешь другие языки за то, что ф них есть встроенные и библиотечные функции, а сам, как только возникает необходимость, с легкостью вводишь такие же функции в свой язык?

Аналогично с "шифтовыми" символами. Ты называешь крутым код, содержащий 6 абсолютно ненужных шифтовых символов на 10 символов кода:
^('s,=' + a)


Но при этом называешь быдлокодом и говноязыками другие языки


dmitriid.comGitHubLinkedIn
Re[123]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 29.12.10 06:43
Оценка:
Здравствуйте, samius, Вы писали:

E>>Дык это очевидно...

S>И о чем спорили?

Так я и не спорю. Я говорю: приводи примеры как ты это видишь в RS...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[93]: Ультракороткий язык программирования RS
От: ambel-vlad Беларусь  
Дата: 29.12.10 06:48
Оценка:
Здравствуйте, Erop, Вы писали:

AV>>Где код запутался? Этому коду уже года 4. И он подвергался неоднократным дописываниям. Причем не одним человеком. И ни у кого не возникало проблем с пониманием кода.


E>Ну ты раньше писал, что в реале функцию process уже подправили и она теперь намного сложнее...


Да, она стала немного сложнее

E>Если эта функция всё ещё просто итерирует массив заданий, формирует аргументы и зовёт обработчики, то это для неё тревожный симптом...


Конкретнее.

E>Что касается вопросов, то мне несколько не понятно, зачем хранить в одном массиве столь разнородные данные. Намного логичнее было бы хранить где-то отдельно 1х, 2х, 3х, 4х, или как ты их там назвал? И отдельно списки интересующих длительностей...


Еще раз напомню что это первый пример, что пришел в голову. В реальности эта функция очень плотно использовалась при прототипировании некоторых частей большой системы и исследовании некоторых моделей. И в первом массиве хранились более сложные данные нежели просто числа. Частенько там был даже не массив, а просто последовательность данных, которые формировались прямо в рантайме.

AV>>Да проблема в другом. Автор меняет язык по первому желанию левой пятки.

E>Ну так задача же в том, чтобы разработать дизайн языка и удобный синтаксис... Так что, по идее, результатом обсуждений и должны быть изменения в языке. Не?

Да, но при этом не стоит бросаться с шашкой наголо и реализовывать первое что понравилось. А в качестве аргументов называть оппонентов дураками. По идее сейчас максимум что стоит писать — это маленькие прототипы, чтобы проверить ту или иную идею. И писать спеку и писать спеку и еще раз писать спеку.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[120]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 29.12.10 06:50
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, samius, Вы писали:

E>>>Лямбда -- это про то, как рекурсивно писать функции. Это совсем не про то. Скорее тут надо на автоматы смотреть, а не на люмбды.
S>>Смотри Машину Тьюринга
E>При чём тут МТ?
При том что я не знаю, что ты хочешь конкретно найти и перебираю от болта формализмы
А МТ — это как раз такая вещь которая расширяет автоматы и формализует понятие алгоритма.

E>Да это всё фигня. Вопрос в том, как эффективно реализовать такие запросы, а не в том, где какой флажок можно поставить. В идеале такого рожа флажки RS должен ставить сам.

Что именно тебе не нравится в эффективности реализации в других языках? А то я не понимаю, что ты подразумеваешь под эффективно?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.