DevelS
>китаец программировал на китайском
А в чём проблема?
Сколько в c++ ключевых слов? Сколько на клавиатуре кнопок? Китайцы бы программировали быстрее всех, а остальным бы догматы не позволили к такому принципу перейти.
Реальная программа на не китайском:
&НаСервере
Функция ПолучитьПустуюХешТаблицу()
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить( "Буква" );
ТЗ.Колонки.Добавить( "Терминал" );
ТЗ.Колонки.Добавить( "Производитель" );
ТЗ.Колонки.Добавить( "Потомки" );
ТЗ.Индексы.Добавить( "Буква" );
Возврат ТЗ;
КонецФункции
&НаСервере
Процедура ТестХеша( Хеш, Уровень )
Отступ = "";
Для А = 1 По Уровень Цикл
Отступ = Отступ + ">";
КонецЦикла;
Для Каждого Стр Из Хеш Цикл
Сообщить( Отступ + " (" + Стр.Буква + ") [" + Стр.Терминал + "]" );
Если ЗначениеЗаполнено( Стр.Потомки ) Тогда
ТестХеша( Стр.Потомки, Уровень + 1 );
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПроставитьИзНазванияНаСервере()
// Строим хеш-таблицу...
Хеш = ПолучитьПустуюХешТаблицу();
Производители = Справочники.Производители.Выбрать();
Пока Производители.Следующий() Цикл
Наим = СокрЛП( Производители.Наименование );
ТекХеш = Хеш;
ДлинаНаим = СтрДлина( Наим );
Для А = 1 По ДлинаНаим Цикл
Буква = ВРег( Сред( Наим, А, 1 ) );
СтрПск = ТекХеш.Найти( Буква, "Буква" );
Если СтрПск = Неопределено Тогда
Стр = ТекХеш.Добавить();
Стр.Буква = Буква;
СтрПск = Стр;
КонецЕсли;
Если А = ДлинаНаим Тогда
СтрПск.Терминал = Истина;
СтрПск.Производитель = Производители.Ссылка;
Иначе
Если Не ЗначениеЗаполнено( СтрПск.Потомки ) Тогда
СтрПск.Потомки = ПолучитьПустуюХешТаблицу();
КонецЕсли;
ТекХеш = СтрПск.Потомки;
КонецЕсли;
КонецЦикла;
КонецЦикла;
// вроде как должны построить хеш-таблицу...
// колбасим колбасу...
// обойдем хеш
Для Каждого Стр Из Объект.Товары Цикл
Если Не Стр.Флаг Тогда
Продолжить;
КонецЕсли;
Найден = Ложь;
Найденный = Справочники.Производители.ПустаяСсылка();
// цепляем инфу из наименования
Наим = СокрЛП( Стр.Номенклатура.Наименование );
ДлинаНаим = СтрДлина( Наим );
Для А = 1 По ДлинаНаим Цикл
ТекХеш = Хеш;
Для Б = А По ДлинаНаим Цикл
Буква = ВРег( Сред( Наим, Б, 1 ) );
СтрПск = ТекХеш.Найти( Буква, "Буква" );
Если СтрПск = Неопределено Тогда
Прервать; // нифига не нашли
КонецЕсли;
Если СтрПск.Терминал = Истина Тогда
Найден = Истина;
Найденный = СтрПск.Производитель;
//Сообщить( "Предварительно найден " + Найденный );
КонецЕсли;
Если ЗначениеЗаполнено( СтрПск.Потомки ) Тогда
ТекХеш = СтрПск.Потомки;
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
Если Найден Тогда
//Сообщить( "Дюже найден " + Найденный );
Прервать;
КонецЕсли;
КонецЦикла;
Если Найден Тогда
Стр.ПроизводительНовый = Найденный;
КонецЕсли;
КонецЦикла;
КонецПроцедурыСильно надеюсь что у местной молодежи появится вкус к этому дели и осознание..
Ал
> Сколько в c++ ключевых слов? Сколько на клавиатуре кнопок? Китайцы бы
> программировали быстрее всех, а остальным бы догматы не позволили к такому
> принципу перейти.
Угу я бы не смог использовать труд и работы программистов, которые не знают мой язык. В своей деятельности я использую разработки например французов, японцев, китайцев, американцев, русских и еще хрен знает кого, если бы они все писали на своих родных языках, прогресс в сфере программирования был бы скудным.
=A=L=X=
> Реальная программа на не китайском:
Да, да - мы поняли, ты супер профи - главное почаще делай тест БД и резервные копии :)
DevelS
Это так кажется. Любая отрасль деградирует, если ею занимается одно единое сообщество, а не несколько разделённых, независимо развивающихся.
Что с программной отраслью и происходит.
innuendo
> стд::множество<целое>
неправильный тип "целое", должно быть "цел" по аналогии с integer -> int
Хаскели, лиспы и прочие перлы по мере сил стараются исправить эту несправедливость - они, я думаю, для англичан выглядят таким же набором значков, как и для нас.
=A=L=X=
> КонецЕсли;
> КонецЦикла;
> КонецПроцедуры
Ну, некорректно спрашивать такой многословный язык с сями.
Вот если бы что-нибудь более лаконичное - например в Ruby on Rails некоторые примеры читаются просто как литературный английский, почти без синтаксического мусора.
Шалом на Brainfuck:
﬩﬩﬩﬩﬩﬩﬩﬩﬩﬩[>﬩﬩﬩﬩﬩﬩﬩>﬩﬩﬩﬩﬩﬩﬩﬩﬩﬩>﬩﬩﬩>﬩<<<<-]>﬩﬩.>﬩.﬩﬩﬩﬩﬩﬩﬩..﬩﬩﬩.>﬩﬩.<<﬩﬩﬩﬩﬩﬩﬩﬩﬩﬩﬩﬩﬩﬩﬩.>.﬩﬩﬩.------.--------.>﬩.>.
kipar
> Вот если бы что-нибудь более лаконичное - например в Ruby on Rails некоторые
> примеры читаются просто как литературный английский, почти без синтаксического
> мусора.
Ты ещё не видел smalltalk :)
innuendo
> Были, конечно, РЕФАЛ и smallltalk по-русский - но это исключения.
Рефал - советский язык программирования, но писался на английском.
АФИКИ
> забавно то, что среди некоторых бытует мнение, что программировать на языке с
> русскими словами - это не труЪ. будто русский язык - это что-то плохое.
Забавно то, что бытует мнение мол естественный язык выбранный для записи ключевых слов языка программирования имеет какое то значение.
Ал
> враки
> склоные песать с ошибками допусакают ошипки и в коде с англискими словами
А вот х. Я, например, инглиша вообще не знаю и воспринимаю все слова кода именно как "картинки", ошибки допускаются по невнимательности, а не по незнанию.
Ал
> Сколько в c++ ключевых слов? Сколько на клавиатуре кнопок? Китайцы бы
> программировали быстрее всех, а остальным бы догматы не позволили к такому
> принципу перейти.
Ты ведь не программист, верно?
kipar
> Ну, некорректно спрашивать такой многословный язык с сями.
А зачем это делать? 1С по синтаксической базе больше всего похож на Basic. И что?
primaT
> Рефал - советский язык программирования, но писался на английском.
Ошибочка вышла, РАПИРА :)
Если бы я нормально знал немецкий, писал бы на нем.
Ал
На счет китайцев - с каких пор количество символов в коде является ограничивающим по скорости фактором? Тем более, что для ввода одного иероглифа им приходится нажимать от двух до 5(>?) клавиш.
Или я не правильно понял?
Fynivx
Ну я, собственно, примерно о том же.
Перевод названий шейдерных языков выглядит забавно:
GLSL - ГЯШЯ
HLSL - ВУШЯ
Тема в архиве.