A>Надеюсь, мы не дойдём до написания операционной системы в итоге: A>
A>(@array[0 .. 4], sort({length($a) <=> length($b)} @array[5 .. $#array]));
A>
Не, дальше не пойдем.
Во-первых программа выросла еще в два раза,
Во-вторых получили полную лажу по архитектуре, она уже не интуитивно понятна
В-третьих получили полную лажу по перформанцу, ибо делить массивы мягко говоря — не хорошо
В-третьих судя по тому сколько ты решал ребусы со своим перлом это у тебя заняло не менее 15 минут полу часа.
Кстате на РС этот код будет выглядеть вот так и подправка кода заняла примерно 15 секунд.
E s:=7,3,2,1 //массив
E s.(I>0?I)<s.(J>0?J)?s.I:=:s.J //сортировка исключая первый элемент
E s //принт результата
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
PC_>Это ультрапонятный короткий и лаконичный код
Пожалуй, это мем...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Однако весь цимес ситуации не в этом.
У языка не могут быть библиотечные функции на все случаи жизни,
поэтому уже при следующей задаче, РС будет держаться молодцом, также лаконично решая новую задачу
лаконичным набором операторов.
Тебе же прийдется читать доки в поисках "библиотечной"
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, samius, Вы писали:
S>Здравствуйте, PC_2, Вы писали:
PC_>>Кстате на РС этот код будет выглядеть вот так и подправка кода заняла примерно 15 секунд.
PC_>>
PC_>>E s:=7,3,2,1 //массив
PC_>>E s.(I>0?I)<s.(J>0?J)?s.I:=:s.J //сортировка исключая первый элемент
PC_>>E s //принт результата
PC_>>
S>Решение умиляет. Даже если нужно отсортировать 2 значения из ста, число итераций будет 100^2.
не знаешь как работает транслятор не свисти
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
PC_>Здравствуйте, samius, Вы писали:
PC_>>>
PC_>>>E s:=7,3,2,1 //массив
PC_>>>E s.(I>0?I)<s.(J>0?J)?s.I:=:s.J //сортировка исключая первый элемент
PC_>>>E s //принт результата
PC_>>>
S>>Решение умиляет. Даже если нужно отсортировать 2 значения из ста, число итераций будет 100^2.
PC_>не знаешь как работает транслятор не свисти
Выпросил
public class Mutable : Token
{
public Mutable(Context context, string text)
: base(context)
{
base.Text = text;
base.TokenType = TokenType.Mutable;
base.Result = new List<Token>();
m_selectedIndex = 0;
}
public override Token Resolve()
{
if (!base.IsResolved)
{
int len = 0;if (this.Context.Group != null)
{
len = this.Context.Group.Numbers.Result.Count;
}
else
{
if (this.Text == "I")
len = this.Context.Document.Area.Width;
else if (this.Text == "J")
len = this.Context.Document.Area.Height;
len = 10;
}
for (int i = 0; i < len; i++)
{
this.Result.Add(new Number(this.Context, i));
}base.Resolve();
}
return this;
}
public override Token Copy()
{
Mutable result = new Mutable(this.Context, this.Text);
foreach (Token token in this.Result)
{
result.Result.Add(token.Copy());
}
return result;
}
private int m_selectedIndex;
public int SelectedIndex
{
get
{
return m_selectedIndex;
}
set
{
m_selectedIndex = value;
}
}
public Token SelectedToken
{
get
{
return this.Result[this.SelectedIndex];
}
}
public List<Token> Result
{
get
{
return (List<Token>)base.Result;
}
}
}
Оно еще и памяти займет под всевозможные значения индексов.
Любой желающий сможет убедиться что это не мой бред, скачав транслятор.
Здравствуйте, PC_2, Вы писали:
PC_>Здравствуйте, samius, Вы писали:
S>>Здравствуйте, PC_2, Вы писали:
PC_>>>Кстате на РС этот код будет выглядеть вот так и подправка кода заняла примерно 15 секунд.
PC_>>>
PC_>>>E s:=7,3,2,1 //массив
PC_>>>E s.(I>0?I)<s.(J>0?J)?s.I:=:s.J //сортировка исключая первый элемент
PC_>>>E s //принт результата
PC_>>>
S>>Решение умиляет. Даже если нужно отсортировать 2 значения из ста, число итераций будет 100^2.
PC_>не знаешь как работает транслятор не свисти
if (token.TokenType == TokenType.NumberCollection)
{
NumberCollection op2 = (NumberCollection)token;
foreach(Number op in op2.Result)
{
result.Result.Add(op);
}
}
Пренебречь можно — скоростью работы интерпретатора, основная цель это разработка синтаксиса. Хороший и быстрый интерпретатор можно отложить на перспективу.
Или вы думаете мне чтото новое сообщили ?
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
PC_>>>>E s:=7,3,2,1 //массив
PC_>>>>E s.(I>0?I)<s.(J>0?J)?s.I:=:s.J //сортировка исключая первый элемент
PC_>>>>E s //принт результата
PC_>>>>
S>>>Решение умиляет. Даже если нужно отсортировать 2 значения из ста, число итераций будет 100^2.
PC_>>не знаешь как работает транслятор не свисти S>Выпросил
S>
S>
S>Оно еще и памяти займет под всевозможные значения индексов. S>Любой желающий сможет убедиться что это не мой бред, скачав транслятор.
нетнетнет! у тебя — лайт версия! а у автора активная разработка и работы там на 10 минут
PC_>Курите мой первый пост в этой теме, а именно
PC_>Пренебречь можно — скоростью работы интерпретатора, основная цель это разработка синтаксиса. Хороший и быстрый интерпретатор можно отложить на перспективу. PC_>
PC_>Или вы думаете мне чтото новое сообщили ?
Здравствуйте, PC_2, Вы писали:
PC_>Здравствуйте, DarkGray, Вы писали:
PC_>>>Что значит S мутабл переменная ?
DG>>тогда это скорее iterator, cursor, может быть связанная переменная, но уж точно не mutable
PC_>Ну не знаю, это не совсем итератор. PC_>Например этот "итератор" можно натравить на алфавит или словать слов, и тогда уже будет перебирать значения
PC_>Например вот такая простая и понятная конструкция
PC_>!iter := 'green', 'white', 'yellow'
PC_>тогда гдето в коде можно будет написать просто
PC_>print iter
PC_>и это будет эквивалент
PC_>print 'green' PC_>print 'white' PC_>print 'yellow'
PC_>Тоесть у меня значительно более мощная конструкция чем во всяких там Сишных языках ...
Это у него недетерминизм такой.
Только навряд ли он его по уму реализует.
Сортировка это примитив да не очень, смотреть серию постов выше
В остальном с грушоедами спорить не хочется, они не понимают что такое тесты возможностей языков
Позволю себе с вами не согласиться. Я уже более пятнадцати лет занимаюсь профессиональным программированием (за деньги). Знаю достаточно много языков: assembler, C, C++, objective-c, Java, C#, javascript, python, ruby, lua, lisp, smalltalk. Участвовал в разработке и релизах крупных программных продуктов (например, Radmin — миллионы строк кода). Немного разбираюсь в языках программирования .
Тесты возможностей языка — они проводятся на предметной области. Например, ruby лучше для DSL а C++ лучше для максимизаци скорости рендеринга на экран. Синтетические тесты вида "посмотрите как на этом языке можно сделать пузырьковую сортировку" не релевантны, так как на практике задача реализовать собственную сортировку намного реже встречается нежели, к примеру, задача считывания из файла строк и извлечения из них данных по regexp.
Так в какой предметной области ваш язык лучше, чем python и ruby? В области написания сортировок? А она кому-нибудь нужна?
и какой язык программирование лучше и быстрее всех читает из файла строки и извлекает данные по регексп
Python и ruby дадут одинаково простой и короткий код: блоки, встроенные regexp, ist comprehensons. Скорость зависит от множества факторов, включая какой именно регексп используется. Термин лучше не применим, так как не указан критерий для сравнения.
Повторю вопрос: так в какой предметной области ваш язык лучше, чем python и ruby?