Вообще, может быть для FAQ на сайте сделаю нотатку.
Чем функциональные языки хуже РС, на примере тогоже Немерле
1. Код длинее в среднем 2-5 раз
2. В Немерле множество шифтовых символов. В РС шифтовые символы доведены до минимума и используются для редких операций (обмен местами, евал и др.)
3. Чтобы разобраться в Немерле нужно прочитать несколько функциональных талмудов.
Для РС достаточно одной статьи из Вики на моем сайте. Порог вхождения для языка крайне низок
4. Код Немерле уступает по гибкости РС, это можно проследить анализируя то, как меняется код при новый требованиях
5. Немерле разрабатывают западные студенты из Польши, РС разрабатывается только отечествеными силами. Я например из Украины.
6. Немерле привязан к Майкрософт, поэтому ему постоянно приходится ждать там погоды. РС ограничивает только фантазия разработчика. И кстате половина задумок находится как раз в области Фреймворка для РС.
7. Немерле не кроссфплаторменен, компактный РС интерпретатор можно переписать на Java и запустить например на смартфонах Android. Дело двух трех недель, если будет желание.
8. Немерле ограничен по быстродействию, поскольку декларативная структура отображается макросами. В РС оптимизатор выражений может быть ограничен только фантазиями и находчивостью разработчиков.
может что и забыл, так меня поправят.
Конечно в РС есть и недостатки, связанные с тем что язык еще молод и довольно игрушечный, но всему
свое время.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
M>>внезапно появились функции, внезапно появился доступ по индексу, а вони-то было!
PC_>индексы в РС со времен Царя Гороха ... PC_>читай мануал, как именно на сайте проекта
Здравствуйте, Mamut, Вы писали:
M>>>внезапно появились функции, внезапно появился доступ по индексу, а вони-то было!
PC_>>индексы в РС со времен Царя Гороха ... PC_>>читай мануал, как именно на сайте проекта
M>имел в виду range, s.(1..2) и т.п.
Ты плохо понимаешь архитектуру.
Раньше была следующая конструкция
Массив.Число — это всятие по индексу
Операция точка для
Массив.МассивЧисел — была не определена
Хотя логично, что если приходит правым операндом вместо числа массив чисел, то можно вернуть
тоже массив чисел взятые по этим индексам.
s.(1..2) получили массив, в котором 1 и 2 элемент
а вот так
s.(1,2,5) получили 1,2,5 элементы из массива
Там было на 2 минуты кодинга и эту конструкцию не я ввел по сути. Это Егор предположил в одном
из своих примеров, что так должно работать в трансляторе согласно и я его полностью поддержал.
Так в чем же суть претензий ко мне ?
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Так что Мамут это не рейндж. Это в говноязыках Range,
а в прогрессивных языках вроде РС это ультрапростая и ультрапонятная конструкция,
определенная для массив.массивчисел
Можно например даже так
s = 'a','b','c'
s.(1,1,2,2,3,3) и получим массив 'a','a','b','b','c','c'
Учи РС !
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
PC_>Здравствуйте, Mamut, Вы писали:
PC_>Ты не видишь разницу между этим
PC_>
PC_>l.Fold([], (e, a) => if (n==1) [e]::a else p(l.Filter(x => x != e), n-1).Fold(a, (s, b) => (e::s)::b))
PC_>
PC_>и этим
PC_>
PC_>i<3?a+='+x'+i
PC_>^a
PC_>
PC_>?
На всякий случай приподниму завесу тумана
Первая строчка генератора РС генерит строку '+x0+x1+x2'. Втарая пытается это строку выполнить.
В результате генерируется следующий набор паролей
Operators: ^a
Object reference not set to an instance of an object.
PC_>Но вообще генерацию паролей мне уже надоело обсуждать. PC_>Мы увивидили штук пять разных генераторов паролей с самыми экзотическими условиями на РС.
Не помню что бы хоть один из них генерировал что-либо кроме сообщений об ошибках.
Только не надо про маленькие детские баги... В тех генераторах проблема не баги интерпретатора, а то что в них нет даже намека ни на описание результата, ни на описание алгоритма.
Здравствуйте, samius, Вы писали:
S>Только не надо про маленькие детские баги... В тех генераторах проблема не баги интерпретатора, а то что в них нет даже намека ни на описание результата, ни на описание алгоритма.
все там работает, еслиб мне за каждый работающий пример на РС добрые люди бутылку пива выставляли
я бы уже наверное спился
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
причем как выложить версию лично запустил каждую программу
которая у меня на заглавное странице сайта проекта и убедился что пример
корректно работает.
Так что не надо ляля ...
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Короче, вот написал за 2 минуты.
Не думаю что я решил эту задачу на Шарпе. На шарпе просто не решается эта задача за 2 минуты, а за 15 минут это минимум
код
!y = 'x'..'z'
!x='a'..'z'
i<3?a+='+x'+i
^('s,=y' + a)
m,=s.i>'xaac'?s.i
m
Здравствуйте, PC_2, Вы писали:
PC_>Здравствуйте, samius, Вы писали:
PC_>Сколько можно одно и тоже пережевывать, было уже сто раз
И ни один раз из ста вопрос ты так и не закрыл.
PC_>
PC_>код
PC_>!y = 'x'..'z'
PC_>!x='a'..'z'
PC_>i<3?a+='+x'+i
PC_>^('s,=y' + a)
PC_>m,=s.i>'xaac'?s.i
PC_>m
Нет уж изволь, ты сравнивал код на Немерле, генерящий пароли из уникальных букв с кодом на РС, который не генерит нифига.
Теперь предъявляешь генератор, который якобы генерит пароли с повторами. Допили уж тогда его до того что бы он генерил пароли без повторов, а там и сравним.
Отдельный вопрос, почему якобы... В нем опять-таки генерится строка '+x0+x1+x2', которая для eval-а бессмысленна.
PC_>Третий день одно и тоже жуем, давайте уже регекспы пилить ...
Ты же сам опять начал предъявлять свои нерабочие примеры. Меня ты можешь упрекнуть только в том что я приоткрываю интересующимся механизмы их "работы".
И с регекспами будет так же, если мне не надоест роль разоблачителя
Вопрос к тебе, как к человеку, имеющему под руками транслятор. Я правильно понял, что '^' у него — это eval()? Если да — то всё ещё более печально, чем я думал...
Здравствуйте, Пацак, Вы писали:
П>Здравствуйте, samius, Вы писали:
PC_>>>
PC_>>>i<3?a+='+x'+i
PC_>>>^a
PC_>>>
П>Вопрос к тебе, как к человеку, имеющему под руками транслятор. Я правильно понял, что '^' у него — это eval()? Если да — то всё ещё более печально, чем я думал...
Да, ^ это именно eval. И он работает:
x='a'..'z'
^'+x.0+x.1+x.2'
вполне справедливо выдает
'abc'
Но результат строки
i<3?a+='+x'+i
есть
'+x0+x1+x2'.
А такой код
x='a'..'z'
^'+x0+x1+x2'
выдает
Operators: ^+x0+x1+x2
Object reference not set to an instance of an object.
Претензии собственно не к eval, а к тому, что выдается за рабочий генератор.
Здравствуйте, PC_2, Вы писали:
PC_>Добавил конструкцию для генерации массивов
PC_>Вот так можно инициализировать массив на 100 элеменов заполненный 0
PC_>
PC_>m = 0**100
PC_>
PC_>А вот так тоже, но строковой массив
PC_>
PC_>m = 'A'**100
PC_>
А как будет инициализироваться трехмерный массив чисел? А строк?
Кстати, а динамические массивы в том или ином виде предполагаются?
Здравствуйте, PC_2, Вы писали:
PC_>5. Немерле разрабатывают западные студенты из Польши, РС разрабатывается только отечествеными силами. Я например из Украины.
И?..
PC_>6. Немерле привязан к Майкрософт, поэтому ему постоянно приходится ждать там погоды. РС ограничивает только фантазия разработчика. И кстате половина задумок находится как раз в области Фреймворка для РС.
Я не фанат Немерле и смотрел краем глаза, но вроде там нет ничего такого, чтобы могло помешать транлировать Немерле во что-то другое нежели .NET.
PC_>7. Немерле не кроссфплаторменен, компактный РС интерпретатор можно переписать на Java и запустить например на смартфонах Android. Дело двух трех недель, если будет желание.
См. выше.
PC_>8. Немерле ограничен по быстродействию, поскольку декларативная структура отображается макросами. В РС оптимизатор выражений может быть ограничен только фантазиями и находчивостью разработчиков.
Возможно я и ошибаюсь, но если эти фантазии не закладывались на этапе проектирования, то потом уже будет поздно фантазировать.
Здравствуйте, PC_2, Вы писали:
PC_>Причем тут математики. PC_>Короткий и мощный синтаксис это же очень классно. PC_>Вот когда у меня рождается в голове микро программа, я просто сажусь и набираю ее за минуту-две. PC_>Ну где еще такое возможно ? Программы настолько лаконичны, что я их держу в памяти, и их набирать могу на клавиатуре мобильного.
Здравствуйте, ambel-vlad, Вы писали:
AV>А как будет инициализироваться трехмерный массив чисел? А строк? AV>Кстати, а динамические массивы в том или ином виде предполагаются?
... и контрольный в голову: как будет выглядеть ассоциативный массив?
Здравствуйте, samius, Вы писали:
S>Да, ^ это именно eval. И он работает:
... S>Претензии собственно не к eval, а к тому, что выдается за рабочий генератор.
Ну нет, претензии в первую голову именно к eval. Потому что как только дело перейдет от наколеночных примеров к реальным программам с реальными входными данными — мы в полный рост получим проблему, уже не раз прочувствованную в виде различных XSS, register_globals и SQL-injections. Что имхо совершенно не тянет на приемлимую цену за синтаксическую лаконичность.