File.ReadAllLines("Numbers.txt") это "freads 'my.txt'"
Select(l => l.Split(' ') это (грубо) " ;. _2"
Select(s => int.Parse(s)) это ".
Sum() это +/
,. — это WriteLine которых тут нет.
Здравствуйте, <Аноним>, Вы писали:
А>Кто изучил и привык — тому нравится
А мне не нравится не первый, ни второй вариант.
В первом варианте — язык в котором нет ничего человеческого. Кодировки хороши для компьютера, но не для человека. Во втором — куча скобок которые надо отслеживать. Чуть ли не лисп получился. C# как функциональный по умолчанию — слабоват.
Мало букф отнюдь не обозначает читабельность. А я очень люблю читабельность. Я люблю понимать что вижу и что пишу без излишней мозговой деятельности. Посему — я за языки с человеческим лицом.
Здравствуйте, GlebZ, Вы писали:
GZ>А мне не нравится не первый, ни второй вариант. GZ>В первом варианте — язык в котором нет ничего человеческого. Кодировки хороши для компьютера, но не для человека.
А в китайских иероглифах тоже нет ничего человеческого ? Или там в арабском языке ?
Если ты знаешь принципы по кторым составляются иероглифы и знаешь некоторый набор базовых, то оказывается, что ничего страшного и нет. Дело привычки.
GZ>Мало букф отнюдь не обозначает читабельность. А я очень люблю читабельность. Я люблю понимать что вижу и что пишу без излишней мозговой деятельности. Посему — я за языки с человеческим лицом.
Ну если сравнивать J и С# допустим можно привести аналог.
Вечер чудесен.
Камыш шумит.
Император пьет чай
и
В это чудесный весенний вечер, слушая таинственные перешептывания камыша, император наслаждался чаепитием в своем большом каменном замке.
Здравствуйте, GlebZ, Вы писали:
GZ>А мне не нравится не первый, ни второй вариант.
Ну где же он?? Где он — ваш вариант на языке идеально подходящим для данной мега задачи?
GZ>В первом варианте — язык в котором нет ничего человеческого. Кодировки хороши для компьютера, но не для человека. Во втором — куча скобок которые надо отслеживать. Чуть ли не лисп получился.
Ну... это вообще уже банальные аргументы в споре о устрицах с теми кто их ел со стороны тех, кто еще не успел — что J/K/APL — это испорченная кодировка, а главный ужас Лиспа — это скобки. Или вы не против лисповских скобок, просто они вам в C# не нравятся? Ну так можно убрать:
var sums = from line in File.ReadAllLines("Numbers.txt")
let numbers = from c in line.Split(' ')
select float.Parse(c)
select numbers.Sum();
sums.ToList().ForEach(Console.WriteLine);
GZ>Мало букф отнюдь не обозначает читабельность. А я очень люблю читабельность. Я люблю понимать что вижу и что пишу без излишней мозговой деятельности. Посему — я за языки с человеческим лицом.
Равно как и "много буков" — тоже не добавляет читабельности (что более читабельно: multiply(2,3) или 2*3? a.Equals(b) или a==b?). Сложность J/K (а также и мощь и красота) вовсе не в "сжатом" синтаксисе (во-первых есть Q, а во-вторых базовые примитивы любой человек за несколько дней запомнит с легкостью и напрягаться не будет), а в "векторности" этих языков, в глагольных ранках J, в его hooks & forks (чего нет в других языках), в тацидном стиле (функциональная композиция). И именно благодаря этим фичам языка любому мало-мальски знающему J понять код, скажем, функции вычисления среднего арифметического значения массива
+/ % #
(+/ (сумму массива) % (разделить на) # (число элементов в массиве)) куда проще чем то же самое имплементированное на любом другом невекторном языке (Linq-овскую Avg() исключаем ) через цикл. Отношение LOC между C#/Java/C++ и K/J — где-то между 100:1 и 1000:1 (Вот характерный примерчик)) — и это отнюдь не одними короткими именами достигается.
PS А вообще довольно мило у вас получилось — наезд на 2 из трех старейших, но все еще молодых, ЯП (Lisp и APL) в одном предложении
Вам какой? C#-style (Воспользовавшись предполагаемым правом свободного копирования постов, сообщений, части соообщений, а также линков и другоко контента публично доступного на форуме RSDN (далее — форуме), было скопировано с нижеприведенного поста Lloyd-а)?
Или J-style ((с) Lloyd)?
А>Отношение LOC между C#/Java/C++ и K/J — где-то между 100:1 и 1000:1 (Вот характерный примерчик)) — и это отнюдь не одними короткими именами достигается.
А>var sums = from line in File.ReadAllLines("Numbers.txt")
А> let numbers = from c in line.Split(' ')
А> select float.Parse(c)
А> select numbers.Sum();
А>sums.ToList().ForEach(Console.WriteLine);
А>
Уже читабельно. Читабельные варианты были еще с Ruby.
Вообще же, когда читаешь код, неважно сколько там символов. Важно насколько емкие там термины, и насколько они понятны.
А>в тацидном стиле (функциональная композиция).
Вот не понимаю, какая красота в том, что 2*3+4 равняется 14?
А>PS А вообще довольно мило у вас получилось — наезд на 2 из трех старейших, но все еще молодых, ЯП (Lisp и APL) в одном предложении
Я люблю старые языки. Но только сами концепции.
Здравствуйте, Mirrorer, Вы писали:
GZ>>Мало букф отнюдь не обозначает читабельность. А я очень люблю читабельность. Я люблю понимать что вижу и что пишу без излишней мозговой деятельности. Посему — я за языки с человеческим лицом. M>Ну если сравнивать J и С# допустим можно привести аналог.
M>Вечер чудесен. M>Камыш шумит. M>Император пьет чай
M>и
M>В это чудесный весенний вечер, слушая таинственные перешептывания камыша, император наслаждался чаепитием в своем большом каменном замке.
Не понял, а где в первом хокку (танка?) информация о том, что император наслаждался чаепитием (может он пил через силу?) и о том, что он пил его в своем большом каменном замке, а не в маленьком шатре во время привала на императорской охоте?
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, Mirrorer, Вы писали:
GZ>>>Мало букф отнюдь не обозначает читабельность. А я очень люблю читабельность. Я люблю понимать что вижу и что пишу без излишней мозговой деятельности. Посему — я за языки с человеческим лицом. M>>Ну если сравнивать J и С# допустим можно привести аналог.
M>>Вечер чудесен. M>>Камыш шумит. M>>Император пьет чай
M>>и
M>>В это чудесный весенний вечер, слушая таинственные перешептывания камыша, император наслаждался чаепитием в своем большом каменном замке.
E>Не понял, а где в первом хокку (танка?) информация о том, что император наслаждался чаепитием (может он пил через силу?) и о том, что он пил его в своем большом каменном замке, а не в маленьком шатре во время привала на императорской охоте?
Описано в стандарте. Для привала на охоте примененные речевые обороты неприменимы
Здравствуйте, eao197, Вы писали:
E>Не понял, а где в первом хокку (танка?) информация о том, что император наслаждался чаепитием (может он пил через силу?) и о том, что он пил его в своем большом каменном замке, а не в маленьком шатре во время привала на императорской охоте?
Тацитный стиль однако
geometric_mean =. # %: */
public double geometric_mean(List<double> data)
{
double mul = 1;
foreach(var x in data)
{
mul *= x;
}
return Math.Pow(mul, 1/data.Count);
}
Где в джее информация о параметрах ? О том что где-то тут есть список ? и что этот список даблов ?
Здравствуйте, Mirrorer, Вы писали:
M>Вечер чудесен. M>Камыш шумит. M>Император пьет чай
M>и
M>В это чудесный весенний вечер, слушая таинственные перешептывания камыша, император наслаждался чаепитием в своем большом каменном замке.
Эй! Не надо сюда императивность тащить! ФЯ — значит ФЯ!
Здравствуйте, VoidEx, Вы писали:
VE>Я сам решу, молиться мне или нет.
Ты давно все решил, от того и вопросы твои будь они хоть с тремя вопросительными знаками один фиг являются риторическими.
VE>Только я вроде как совета не просил, я вопрос задал (там вопросительный знак стоит), причем уточняющийся. Вместо ответа "да, я считаю, что замена", я слышу какое-то огрызание.
Знаешь, я считаю, что если человек может как-то иначе интерпретировать слова "Ну, и Немерле это язык для реальной работы — замена плюсам, C#-у и Яве, а не для пенисометрии.", то разговаривать с ним бесполезно. Все равно они или больной на голову, или хочет услышать что-то, что ему надо, а не то что ему говорят.
VD>>Я говорю для тех кому надоел этот трах. VE>Замечательно, у меня "траха" нет в твоем понимании.
Ага. "А мы этого не замечаем, не замечаем, не замечаем, не замечаем, не замечаем, не замечаем..." (с) Жванецкий
VE>Слово "замена" звучит как минимум уж слишком оптимистично. "Альтернатива" — это еще да.
Лично мне совершенно все равно, что ты там думаешь на счет терминов и оптимизма. Я что хотел, то и сказал. Более того на практике это испытал и не только на своей. И не надо пытаться меня поправлять и тем более интерпретировать.
VE>П.С. Давай ты все-таки перестанешь хамить и указывать, что мне делать?
ОК. А ты тупые вопросы задавать. ОК?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Лично мне совершенно все равно, что ты там думаешь на счет терминов и оптимизма. Я что хотел, то и сказал. Более того на практике это испытал и не только на своей. И не надо пытаться меня поправлять и тем более интерпретировать.
Последняя фраза особенно понравилась, я б ее в девиз написал
VE>>П.С. Давай ты все-таки перестанешь хамить и указывать, что мне делать?
VD>ОК. А ты тупые вопросы задавать. ОК?
Без проблем. А то ты болезненно на них реагируешь.
Здравствуйте, VoidEx, Вы писали:
__>>похоже на провокацию. __>>обычно вопрос задают ДО того, как прочитают ответ, а не после.
VE>Уточняющий. Потому что "замена" слишком громко сказано.
Это твое личное мнение. Хочешь его выразить? ОК, нет проблем... выражай. Вот только не надо из своего мнения делать ни вопросов, ни истины в последней инстанции.
А то ты забавный чувак. С одной стороны сам работаешь на допотопных средствах (С++), но свое нежелание смотреть на что-то их заменяющих или просто личное отвращение пытаешься навязать всем как истину. Причем вместо того, чтобы просто сказать свое мнение начинаешь разводить демагогию (вопросы он видите ли задает).
VE>А вот на провокацию больше похоже то, что по идее должно было являться ответом на мой вопрос, а на деле ответа я так и не получил.
Не ври в глаза. Не было никакого вопроса. Ответ на твой вопрос был дан в том сообщении на которое ты отвечал задавая свой "вопрос".
Там не вопрос, там явно просвечивает мнение которое пытались завуалировано выразить. И которое несло явно флэймовую (провокационную), демагогическую форму.
Так что если у тебя есть действительно осмысленные вопросы, то задавай их. Но без демагогии.
Если ты просто не умеешь формулировать вопросы и тебя интересовал ответ на, скажем, вопрос "Является ли тот же Nemerle заменой на все случаи жизни?", то заранее отвечу — нет, не является. Что в общем-то очевидно, так как наличие сложного рантайма не позволяет использовать программы в средах где он отсутствует (например, в нулевом кольце защиты ОС вроде Windows/Linux или, скажем, для расширения Ява-программ). Так же мало полезен данный язык и в задачах которые в основном сводятся к вызову C/C++-API. Вот только для 99% задач решаемых сегодня на С++ он пригоден отлично. Намного лучше чем С++.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.