Здравствуйте, PC_2, Вы писали:
C>>Эк вы его. "Ультра" упало до "мега", скоро глядишь просто "понятно" станет , а потом и до "непонятно" дойдем.
PC_>оно и понятно и коротко и минимум синт. конструкций, так PC_>что пока что все чин чинарём
Мде, прикольная игрушка, например вот так получился конвертор с десятичной системы в двоичную
!x='0','1'
i<5?a+='+x'+i
^('s,=' + a)
s.8 //получили двоичное число для 8
а вот так получился конвертор с десятичной системы в шестнадцетиричную
!x='0'..'9', 'a'..'f'
i<3?a+='+x'+i
^('s,=' + a)
s.500 //вывели 1f4
B все таже минутка на кодирование
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
PC_>x='a'..'z' //генерим алфавит от a до z, это наш массив строк
PC_>i<8?a+='+x.rnd' //теперь, пока переборщик меньше 8, прибавляем к строке строку. В итоге для восьми получится +х.rnd+x.rnd+x.rnd ... Первый плюс унарный оператор, он для массива не определен, поэтому просто возвращается "х" (+х = х)
PC_>'passwrod:' + ^a // а тут делаем евал этой строки и возвращаем строку в формате "passwrod:oxsdrehl" :up:
PC_>
Евал тут нужен как телеге тормозная жидкость
x='a'..'z'
i<8?a+=x.rnd
Доставай линейку
А вообще стой, рано.
rnd('a'..'z')>t8\+
Это на моем диалекте
массив все узнали, > — это map, rnd — генератор элементов по входящей последовательности, t8 — это Take(8). Дальше свертка по конкатенации символов.
Никаких переборщиков, евалов, и ничего НОВОГО. Просто компактная запись композиции генераторов.
Здравствуйте, PC_2, Вы писали:
PC_>Здравствуйте, Erop, Вы писали:
E>>IMHO, наследовать в любом порядке ромб, квадрат и прямоугольник неправильно. От задач, конечно же зависит, но обычно глупо. Так же глупо, как выводить треугольник из угла, например.
+1
PC_>Оно то так да не так. PC_>Ведь наследование нужно, например, для того чтобы на вход функций которые принимают прямоугольник подать и квадрат,
Ты так и не прочитал LSP?
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, samius, Вы писали:
S>>C# может пробежать только часть квадрата и в любой момент покинуть цикл, а RS может наложить разве что фильтр на весь квадрат.
E>Нет. Это не так. Можно написать переборщик, который будет, при прямой интерпретации, аналогичен такому коду:
Сейчас нельзя. Все выражения контекста выполняются только внутри всех вложенных циклов. Т.е. сначала for-ы, потом if-ы. Только O(N)*число переборщиков. Никак не меньше.
S>rnd('a'..'z')>t8\+
S>Это на моем диалекте S>массив все узнали, > — это map, rnd — генератор элементов по входящей последовательности, t8 — это Take(8). Дальше свертка по конкатенации символов.
отето ты жжошь,
t8 это вызов метода t (take) (Как разве это комуто не понятно ???) с параметром 8. Видимо если тебе прийдется в функцию какую нить ToString передать два числа,
то ты напишешь t88
S>Никаких переборщиков, евалов, и ничего НОВОГО. Просто компактная запись композиции генераторов.
да но это говнокод который решает одну единственную задачу
попробуй его добить за 30 секунд например до конвертора с одной системы счисления в другую
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
E>>А зря. Он это слово, похоже, употребляет совсем в другом значении, чем ты, например
PC_>Пришла вчера интересная, на мой взгляд, идея. PC_>Суть в том что вот есть алгоритм генератора паролей, который вы рассматриваете. PC_>И ставится новое условие, что символы не должни повторяться. PC_>Так вот новое условие, это по сути аспект над генератором.
Если ты об аспектном фильтре, то это не интересно.
Если о чем-то другом, то видимо не знаешь алгоритма размещений без повторов.
PC_>Разделив коды генераторов и аспектов мы должни получить черезвычайно чистый и гибкий для поддержки послойный код, PC_>отлично пригодный для оптимизации компилятором.
Болтовня
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, samius, Вы писали:
S>>Писать генератор размещений без повторов. При его написании могут быть использованы эти функции. Но одними только ими вряд ли обойдется. E>Ну покажи, как ты себе это представляешь? Типа просто цикл, которые клонирует переборщик и фильтрует его?
E>Ну там что-то вроде
E>переборщик перебратьРазмещенияБезПовторов( переборщик X, int count )
E>{
E> Что тут пишем?
E>}
Я давал ссылку на рекурсивный алгоритм. Записивать его в птичьий язык мне не интересно. Могу показать, как оно будет работать на C#-е.
E>C+(D!=C?D)+(E!=C && E!=D?E)
нет, так не выразить. Уверен на 99.8%.
PC_>>Пришла вчера интересная, на мой взгляд, идея. PC_>>Суть в том что вот есть алгоритм генератора паролей, который вы рассматриваете. PC_>>И ставится новое условие, что символы не должни повторяться. PC_>>Так вот новое условие, это по сути аспект над генератором. S>Если ты об аспектном фильтре, то это не интересно. S>Если о чем-то другом, то видимо не знаешь алгоритма размещений без повторов.
Что значит фильтре.
Не стоит забывать что при однозначном синтаксисе остается возможность создать некий оптимизатор запросов, который будет
этот фильтр применять в самом начале. Но мы реально разделим код. Вот генератор, а вот правила по которым живут данные которые генерятся.
PC_>>Разделив коды генераторов и аспектов мы должни получить черезвычайно чистый и гибкий для поддержки послойный код, PC_>>отлично пригодный для оптимизации компилятором. S>Болтовня
врядли
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
PC_>Так о чем спор то, PC_>это что решение с фиалками ? PC_>По сути будет тот же самый цикл там отфильтрованый по условию
PC_>where i != j
PC_>РС поступает также...
РС не может выйти из цикла, РС не может перебрать только нижнюю часть или верхнюю.
Ты не ответил нафига туда eval вставил. Любишь вставить крутую ненужную фишку?
PC_>отето ты жжошь, PC_>t8 это вызов метода t (take) (Как разве это комуто не понятно ???) с параметром 8. Видимо если тебе прийдется в функцию какую нить ToString передать два числа, PC_>то ты напишешь t88
Да все фигня, хоть напиши take(8), все равно короче
S>>Никаких переборщиков, евалов, и ничего НОВОГО. Просто компактная запись композиции генераторов.
PC_>да но это говнокод который решает одну единственную задачу
PC_>попробуй его добить за 30 секунд например до конвертора с одной системы счисления в другую
Мне это не интересно. Это разные задачи и конвертировать решение одной в другую — детский сад.
Здравствуйте, PC_2, Вы писали:
PC_>>>Пришла вчера интересная, на мой взгляд, идея. PC_>>>Суть в том что вот есть алгоритм генератора паролей, который вы рассматриваете. PC_>>>И ставится новое условие, что символы не должни повторяться. PC_>>>Так вот новое условие, это по сути аспект над генератором. S>>Если ты об аспектном фильтре, то это не интересно. S>>Если о чем-то другом, то видимо не знаешь алгоритма размещений без повторов.
PC_>Что значит фильтре. PC_>Не стоит забывать что при однозначном синтаксисе остается возможность создать некий оптимизатор запросов, который будет
Вот как создашь оптимизатор — приходи. А генераторы которым 30 лет, лишнего не переберут.
S>>Болтовня
PC_>врядли
Уверен
Здравствуйте, samius, Вы писали:
S>Здравствуйте, PC_2, Вы писали:
S>Ты не ответил нафига туда eval вставил. Любишь вставить крутую ненужную фишку?
PC_>>отето ты жжошь, PC_>>t8 это вызов метода t (take) (Как разве это комуто не понятно ???) с параметром 8. Видимо если тебе прийдется в функцию какую нить ToString передать два числа, PC_>>то ты напишешь t88 S>Да все фигня, хоть напиши take(8), все равно короче
S>>>Никаких переборщиков, евалов, и ничего НОВОГО. Просто компактная запись композиции генераторов.
PC_>>да но это говнокод который решает одну единственную задачу
PC_>>попробуй его добить за 30 секунд например до конвертора с одной системы счисления в другую S>Мне это не интересно. Это разные задачи и конвертировать решение одной в другую — детский сад.
Так а причем здесь короче, мы же уже сто раз обсуждали, что твой Мап и Тейк это две грушки.
И твое решение сразу же разбивается при малейшем изменении задания.
Кстате что там с конвертором из одной системы счисления в другую
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
PC_>>>РС поступает также... S>>РС не может выйти из цикла, РС не может перебрать только нижнюю часть или верхнюю.
PC_>я тебя не понял. Давай на примерах. Ато вы тянете сферические задачи из вакуума и их же пытаетесь решить ...
таблица умножения 1..10. Посчитать сумму элементов выше диагонали квадратов.
Комбинация генераторов позволяет не циклиться по элементам ниже диагонали. Для РС это недостижимая роскошь.
Здравствуйте, PC_2, Вы писали:
PC_>Здравствуйте, samius, Вы писали:
S>>Здравствуйте, PC_2, Вы писали:
S>>Ты не ответил нафига туда eval вставил. Любишь вставить крутую ненужную фишку?
Опять не отвечаешь на неудобные вопросы?
PC_>>>попробуй его добить за 30 секунд например до конвертора с одной системы счисления в другую S>>Мне это не интересно. Это разные задачи и конвертировать решение одной в другую — детский сад.
PC_>Так а причем здесь короче, мы же уже сто раз обсуждали, что твой Мап и Тейк это две грушки.
Ты так ничего и не понял из того обсуждения. Мап и Тейк это такие же грушки как и твоя свертка, как твои ,= и все остальное. Только это навесные грушки, а не ядро языка. И они обеспечивают реюз и комбинирование сколь угодно сложных композиций.
PC_>И твое решение сразу же разбивается при малейшем изменении задания.
Твое-то неразбилось? У твоего генератора паролей и конвертации чисел общего лишь Eval, который не нужен ни для той ни для другой задачи.
PC_>Кстате что там с конвертором из одной системы счисления в другую
Не жди его.
Здравствуйте, PC_2, Вы писали:
PC_>Вообще тебя до синтаксиса нельзя даже на пушечный выстрел подпускать, PC_>столько полезных символов растерял на своей сиюсекундной выгоде
PC_>rnd('a'..'z')>t8\+
PC_>например >> — это map
PC_>А что будет теперь закарюкой "Больше", PC_>наверное CompareTo()
Если ты не понял, то тот пример был просто что бы тебя подколоть. Я не собираюсь заниматься пенисометрией и разрабатывать свои диалекты. Я просто продемонстрировал что концепция генераторов, которой 30 лет в обед, при минимизации синтаксиса позволяет иметь более компактный код чем твоя поделка.