dmz>>если я, конечно, правильно понял, что тут происходит. Но Nemerle в таком примере не впечатлил, да.
BZ>нет, здесь печатается сумма чисел в каждой строке. ваш ход:
Пардон тогда:
[reduce(lambda a,b:int(a)+int(b), x.split(' ')) for x in open('nums').readlines()]
dmz>>>если я, конечно, правильно понял, что тут происходит. Но Nemerle в таком примере не впечатлил, да.
BZ>>нет, здесь печатается сумма чисел в каждой строке. ваш ход:
dmz>Пардон тогда:
dmz>
dmz>[reduce(lambda a,b:int(a)+int(b), x.split(' ')) for x in open('nums').readlines()]
dmz>
Можно и так.
using Nemerle.Utility;
using System.IO;
using System;
module TextReadeExtension
{
public ReadLines(this reader : TextReader) : list[string]
{
mutable lines = [];
mutable line = reader.ReadLine();
while (null != line)
{
lines ::= line;
line = reader.ReadLine();
}
lines;
}
}
File
.OpenText("test.txt")
.ReadLines()
.Map(x => x.Split(array[' ']).Fold(0, (a, b) => int.Parse(a) + b))
.Iter(Console.WriteLine : int -> void);
BulatZiganshin wrote:
> import Control.Arrow > main = interact (lines >>> map sumline >>> unlines) > sumline = words >>> map (read::String->Int) >>> sum >>> show
Вот они страхи... Может это у меня опыта нет, но из всех приведённых программ, если не считать K (или что там у Mirrorer), эта самая непонятная.
Что такое interact? lines? unlines? words? а особенно >>>?
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, ., Вы писали:
>> import Control.Arrow >> main = interact (lines >>> map sumline >>> unlines) >> sumline = words >>> map (read::String->Int) >>> sum >>> show .>Вот они страхи... Может это у меня опыта нет, но из всех приведённых программ, если не считать K (или что там у Mirrorer), эта самая непонятная. .>Что такое interact? lines? unlines? words? а особенно >>>?
interact f читает стандартный входной поток, применяет к нему функцию f, пишет в стандартный выходной поток.
lines — разбивает текст по символу '\n'
words — разбивает строку по пробелам >>> — конвейер (шеллом пользоваться приходилось?).
Здравствуйте, BulatZiganshin, Вы писали:
BZ>недёшево "человеческое лицо" обходится, одним словом
Ты же понимаешь что если написать все нужные комбинаторы то все точно также получится...
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, BulatZiganshin, Вы писали:
BZ>just for comparison :
BZ>import Control.Arrow BZ>main = interact (lines >>> map sumline >>> unlines) BZ>sumline = words >>> map (read::String->Int) >>> sum >>> show
BZ>недёшево "человеческое лицо" обходится, одним словом
Это не эквивалентный код. Интересно, как на Хаскеле будет выглядеть открытие и закрытие файла? Также, интересно как в нём обработать некорректный формат.
Здравствуйте, Mirrorer, Вы писали:
M>Здравствуйте, Константин, Вы писали:
DM>>>Ha Ruby, как обычно, короче всего: К>>Думаю, на perl'е ещё короче, но это уже звериный оскал
M>Ноги, крылья, главное хвост !!! M>
Здравствуйте, Don Reba, Вы писали:
DR>Это не эквивалентный код. Интересно, как на Хаскеле будет выглядеть открытие и закрытие файла? Также, интересно как в нём обработать некорректный формат.
import Control.Arrow
import Control.Exception
main = handle print $ do
readFile "test" >>= return.process >>= putStr
process = lines >>> map sumline >>> unlines
sumline = words >>> map (read::String->Int) >>> sum >>> show
Здравствуйте, WolfHound, Вы писали:
WH>Ты же понимаешь что если написать все нужные комбинаторы то все точно также получится...
Без классов типов с полиморфизмом высшего порядка комбинаторов придется писать много.
Здравствуйте, Mirrorer, Вы писали:
M>Здравствуйте, _pk_sly, Вы писали:
__>>(reduce и add) описаны отдельно
M>Ну это же неспортивно. Отдельно можно описать make_sum_of_numbers_in_every_line_in_file и получить гарантированно самый короткий результат.
да, согласен я же не виноват что разработчики Перла функцию map в язык включили, а reduce — забыли.. для приведения языка к функциональному стандарту, дописанный reduce из пяти строк можно не считать
по поводу add — та же история операторы — не first class functions.
Здравствуйте, Mirrorer, Вы писали:
M>Ой, а чегой-то стрелочки разные ? M>И чем отличается >>= от >>> ?
>>= соединяет императивные процедуры, а >>> — чистые функции
Здравствуйте, palm mute, Вы писали:
PM>Без классов типов с полиморфизмом высшего порядка комбинаторов придется писать много.
Практика показывает что не так уж и много.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Klapaucius, Вы писали:
K>А если файл называется "Числа Васисуалия Пупкина.txt" и, к тому же, UTF-32?
в станд. библиотеке ни то, ни другое не поддерживается (хотя под linux'ом первое работать всё же будет). доп. библиотеки существуют, в частности поддержку unicode имён файлов под виндами я сам во freearc сделал
Здравствуйте, BulatZiganshin, Вы писали:
M>>И чем отличается >>= от >>> ?
>>= соединяет императивные процедуры, а >>> — чистые функции
вот уж упростил так упростил!
using System.Console;
using System.IO;
using Nemerle.Utility;
def res = File.ReadAllLines(@"..\..\test.txt").Map(
x => x.Split(' ').Fold(0, (a, b) => int.Parse(a) + b));
WriteLine($"..$res");
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, BulatZiganshin, Вы писали:
BZ>just for comparison :
BZ>import Control.Arrow BZ>main = interact (lines >>> map sumline >>> unlines) BZ>sumline = words >>> map (read::String->Int) >>> sum >>> show
BZ>недёшево "человеческое лицо" обходится, одним словом
Тут дело не в лице, а в опыте или руках. В сообщение на который ты отвечал ведь четко сказано "Пока не знаешь язык, пишешь почти также как на C#". Приведенный там код и есть "почти также как на C#". Но это не значит, что нельзя подругому.
using System.Console;
using System.IO;
using Nemerle.Utility;
foreach (line in File.ReadAllLines("test.txt"))
WriteLine(line.Split(' ').Map(int.Parse).Fold(0, _ + _));
Вот только простым бы я ни Немерле, ни Хаскель не назвал бы.
Ну, и Немерле это язык для реальной работы — замена плюсам, C#-у и Яве, а не для пенисометрии.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Ну, и Немерле это язык для реальной работы — замена плюсам, C#-у и Яве, а не для пенисометрии.
Штирлиц вошёл в кафе
— сейчас начнётся драка — сказал один из посетителей
Штирлиц вышел
— нет, драки не будет — возразил другой
и тут между ними началась драка
Здравствуйте, BulatZiganshin, Вы писали:
BZ>Здравствуйте, VladD2, Вы писали:
VD>>Ну, и Немерле это язык для реальной работы — замена плюсам, C#-у и Яве, а не для пенисометрии.
BZ>Штирлиц вошёл в кафе BZ>- сейчас начнётся драка — сказал один из посетителей BZ>Штирлиц вышел BZ>- нет, драки не будет — возразил другой BZ>и тут между ними началась драка
звучит как "Немерле — не для пенисометрии. Просто он — лучший"
Здравствуйте, BulatZiganshin, Вы писали:
BZ>Штирлиц вошёл в кафе BZ>- сейчас начнётся драка — сказал один из посетителей BZ>Штирлиц вышел BZ>- нет, драки не будет — возразил другой BZ>и тут между ними началась драка
Ну, я вышел. Можете начинать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, VoidEx, Вы писали:
VE>>Так уж и замена?
VD>Не я тут выхожу по-врать, чтобы таких как ты с истинного пути сбить.
А, ну ок.
VD>Не веришь, тогда молись на разные Хаскили по вечерам, а днем разводи кашу на С++ и трахайся с ней. Кто тебе мешает?
Я сам решу, молиться мне или нет. Только я вроде как совета не просил, я вопрос задал (там вопросительный знак стоит), причем уточняющийся. Вместо ответа "да, я считаю, что замена", я слышу какое-то огрызание.
VD>Я говорю для тех кому надоел этот трах.
Замечательно, у меня "траха" нет в твоем понимании.
Слово "замена" звучит как минимум уж слишком оптимистично. "Альтернатива" — это еще да.
П.С. Давай ты все-таки перестанешь хамить и указывать, что мне делать?
Здравствуйте, _pk_sly, Вы писали:
__>похоже на провокацию.
__>обычно вопрос задают ДО того, как прочитают ответ, а не после.
Уточняющий. Потому что "замена" слишком громко сказано. А вот на провокацию больше похоже то, что по идее должно было являться ответом на мой вопрос, а на деле ответа я так и не получил.
Здравствуйте, _pk_sly, Вы писали:
VE>>я вопрос задал (там вопросительный знак стоит) __>похоже на провокацию. __>обычно вопрос задают ДО того, как прочитают ответ, а не после.
ты решил действовать точно по анекдоту?
Люди, я люблю вас! Будьте бдительны!!!
Re[9]: Очередной, весенний, взрыв пенесометрии :)
От:
Аноним
Дата:
31.03.08 12:56
Оценка:
Здравствуйте, Mirrorer, Вы писали:
M>Ну, или применительно к нашей задаче M>
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% задач решаемых сегодня на С++ он пригоден отлично. Намного лучше чем С++.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VoidEx, Вы писали:
VD>>Лично мне совершенно все равно, что ты там думаешь на счет терминов и оптимизма. Я что хотел, то и сказал. Более того на практике это испытал и не только на своей. И не надо пытаться меня поправлять и тем более интерпретировать. VE>Последняя фраза особенно понравилась, я б ее в девиз написал
Дарю вместе с копирайтом.
VD>>ОК. А ты тупые вопросы задавать. ОК? VE>Без проблем. А то ты болезненно на них реагируешь.
Я всегда плохо реагирую на бессмыслицу. Я априори считаю, что человек вступивший со мной в дискуссию не тупица, а стало быть за тупым или бессмысленным вопросом кроется какой-то подвох.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Mirrorer, Вы писали:
M>Если ты знаешь принципы по кторым составляются иероглифы и знаешь некоторый набор базовых, то оказывается, что ничего страшного и нет. Дело привычки.
Конечно... ничего страшного. Просто иногда страшно, что введенные, сгоряча, путем простого проведения пальцем по клавиатуре (!"№;?*)_+), символы могут оказаться реально работающим вирусом который воплотит идеи фильма "Терминатор" в жизнь .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Кодт, Вы писали:
M>>Император пьет чай
M>>император наслаждался чаепитием в своем большом каменном замке.
К>Эй! Не надо сюда императивность тащить! ФЯ — значит ФЯ!
Ура! Ура! Ура! Очередной флейм по вопросу "Что считать ФЯ"
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, Mirrorer, Вы писали:
M>>>Ну, или применительно к нашей задаче M>>>
Здравствуйте, Mirrorer, Вы писали:
M>Здравствуйте, Константин, Вы писали:
DM>>>Ha Ruby, как обычно, короче всего: К>>Думаю, на perl'е ещё короче, но это уже звериный оскал
M>Ноги, крылья, главное хвост !!! M>
Здравствуйте, _pk_sly, Вы писали:
__>Здравствуйте, Mirrorer, Вы писали:
M>>Эт не зверь. Это старый добрый джей. M>>Когда начинается пенисометрия в разрезе "кто короче" ему нет равных
__>таки на перле сравнимо получается __>
__>#!perl -np
__>$_=reduce(\&add,0,split);
__>
__>(reduce и add) описаны отдельно
так не интересно.. в первом j варианте загрузка файла тоже "отдельно заданная функия", хоть и библиотечная.. но можно сделать на чистом j
(+/@".);._2(1!:1<'my.txt')
можно еще на четырех скобках съкономить, но уже не помню как
Здравствуйте, Mirrorer, Вы писали:
M>Здравствуйте, GlebZ, Вы писали:
GZ>>А мне не нравится не первый, ни второй вариант. GZ>>В первом варианте — язык в котором нет ничего человеческого. Кодировки хороши для компьютера, но не для человека. M>А в китайских иероглифах тоже нет ничего человеческого ? Или там в арабском языке ?
да вобщем J то поидее гораздо человечнее математику изучают раньше программирования, так что "синтаксис" должен быть ближе — только и того что значков больше.
Здравствуйте, Yuri Burger, Вы писали:
YB>так не интересно.. в первом j варианте загрузка файла тоже "отдельно заданная функия", хоть и библиотечная.. но можно сделать на чистом j YB>
YB>(+/@".);._2(1!:1<'my.txt')
YB>
Этот вариант не всегда корректно обрабатывает преносы строк (когда перенос обозначен парой CR,LF). В каноническом примере сначала убираются CR (или LF):
+/@".;._2 (#~~:&CR) 1!:1<'c:\\my.txt'
Но и этот вариант не работает если последняя строка не завершается LF. freads все ж более корректно эти все нюансы обрабатывает
Здравствуйте, Yuri Burger, Вы писали:
YB>так не интересно.. в первом j варианте загрузка файла тоже "отдельно заданная функия", хоть и библиотечная.. но можно сделать на чистом j YB>
YB>(+/@".);._2(1!:1<'my.txt')
YB>
Оно то конечно можно, но переводы строки могут быть разными. Их обработкой собственно fread и занимается.
Опять же непонятно где проводить границу между тем что встроено в язык и "отдельно заданными функциями".
Если ограничится встроенными исключительнов язык функцями то это будет весьма печально. C# без немаленькой библиотеки .NET будет мягко говоря отдыхать.
Ну и не зря 1!: находится в разделе foreign. Тот же System.IO вид сбоку
Здравствуйте, Yuri Burger, Вы писали:
M>>А в китайских иероглифах тоже нет ничего человеческого ? Или там в арабском языке ?
YB>да вобщем J то поидее гораздо человечнее математику изучают раньше программирования, так что "синтаксис" должен быть ближе — только и того что значков больше.
Ну учтывая то, что китайскими иероглифами пользуется миллиард китайцев, а джеем несколько меньше народу, то вопрос том что человечнее становится очень спорным
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Yuri Burger, Вы писали:
YB>>так не интересно.. в первом j варианте загрузка файла тоже "отдельно заданная функия", хоть и библиотечная.. но можно сделать на чистом j YB>>
YB>>(+/@".);._2(1!:1<'my.txt')
YB>>
А>Этот вариант не всегда корректно обрабатывает преносы строк (когда перенос обозначен парой CR,LF). В каноническом примере сначала убираются CR (или LF): А>
А>+/@".;._2 (#~~:&CR) 1!:1<'c:\\my.txt'
А>
А>Но и этот вариант не работает если последняя строка не завершается LF. freads все ж более корректно эти все нюансы обрабатывает
ну заменить предварительно все CR,LF на скажем 0.
да и формат не оговаривался
Здравствуйте, VladD2, Вы писали:
VD>А то ты забавный чувак. С одной стороны сам работаешь на допотопных средствах (С++), но свое нежелание смотреть на что-то их заменяющих или просто личное отвращение пытаешься навязать всем как истину. Причем вместо того, чтобы просто сказать свое мнение начинаешь разводить демагогию (вопросы он видите ли задает).
Я уже не раз говорил, что к Немерле не испытываю отвращения, наоборот жду стабильной экспресс версии, чтоб "поставил и работало". На работе бы даже писал (но только вместо шарпа). Пока что интерес только "удаленно". С чего вдруг ты решил, что у меня есть "нежелание смотреть" и "отвращение" — не пойму. Ни разу ничего против Немерле не утверждал.
VD>Если ты просто не умеешь формулировать вопросы и тебя интересовал ответ на, скажем, вопрос "Является ли тот же Nemerle заменой на все случаи жизни?", то заранее отвечу — нет, не является. Что в общем-то очевидно, так как наличие сложного рантайма не позволяет использовать программы в средах где он отсутствует (например, в нулевом кольце защиты ОС вроде Windows/Linux или, скажем, для расширения Ява-программ). Так же мало полезен данный язык и в задачах которые в основном сводятся к вызову C/C++-API. Вот только для 99% задач решаемых сегодня на С++ он пригоден отлично. Намного лучше чем С++.
Ок, вопрос без демагогии.
99% задач — имеются ввиду все задачи (т.е. задачи "в нулевом кольце защиты ОС", "для расширения Ява-программ" занимают менее 1%) или те, для которых Немерле пригоден?
Т.е. ты имеешь в виду, что для тех задач, которые могут быть решены с помощью Немерле, он подходит лучше, чем Си++, в 99% случаях, так?
Здравствуйте, VoidEx, Вы писали:
VE>Ок, вопрос без демагогии. VE>99% задач — имеются ввиду все задачи (т.е. задачи "в нулевом кольце защиты ОС", "для расширения Ява-программ" занимают менее 1%) или те, для которых Немерле пригоден? VE>Т.е. ты имеешь в виду, что для тех задач, которые могут быть решены с помощью Немерле, он подходит лучше, чем Си++, в 99% случаях, так?
Для начала процитирую свою фразу которая не дала тебе пройти мимо:
Ну, и Немерле это язык для реальной работы — замена плюсам, C#-у и Яве, а не для пенисометрии.
Что тут переводить я не очень понимаю. Любому ясно, что заменить любой язык на 100% невозможно. Даже тот же C# может быть предпочтительнее хотя бы потому, что для конкретной задачи создан крутой тулз-кодогенератор, визуальный редактор или еще что-то.
У плюсов специфики еще больше. Тут и упомянутые "кольца" и задачи где требуется С/C++-интерфейс и просто тупые задачи которые пофигу на чем решать, но желательно код по быстрее иметь (т.е. задачи для которых более высокоуровневое средство не требуется). Но это очень не часто встречающиеся задачи в реальной жизни. Споря с "плюсовиками" на этом сайте я частенько спрашивал "а что вы делаете-то?..." и ответ очень часто был "пишем информационную систему" или на худой конец "логику игрушки". Вот это уж точно задачи на для С++. Другими аргументам были "а ты залуди вот такую финтифлюшку" после чего приводился метакод на шаблонах. Когда товарищу объясняешь, что по сравнению с полноценной макросистемой его козьи потягушки смехотворны, то он просто не верит, так как мыслит на С++, а все что выходит за его понятие считает "непонятной хренью".
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, BulatZiganshin, Вы писали:
BZ>Влад обиделся и отомстил насколько хватило энтиллекта
Обиделся тут явно кто-то другой (факт!). По уму за такие ответвления от темы надо прост в бан, а сообщения на помойку. Я же всего лишь назвал ответвление подобающим именем.
Так что лучше чем обижаться пошел бы и ответил бы на вопрос человека... если конечно есть что сказать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
BZ>>Влад обиделся и отомстил насколько хватило энтиллекта
VD>Обиделся тут явно кто-то другой (факт!). По уму за такие ответвления от темы надо прост в бан, а сообщения на помойку. Я же всего лишь назвал ответвление подобающим именем.
пенисометрией здесь занимаешься ты, Влад. собственно, я от тебя ни одного сравнения немерле с другими языкаи не видел без помоев. переименование темы, которым ты ответил на то, что тебя игнорят — это наглое и бепардонное хамство, за которое тебя следовало бы забанить
VD>Так что лучше чем обижаться пошел бы и ответил бы на вопрос человека... если конечно есть что сказать.
Влад, если у тебя недостаточно самоуважения, то ты можешь идти общаться в форумы с хамским модерированием. может, для самоощущения совка это нормально: я модератор — ты дурак, ты модератор — я дурак. нормальные же люди тебя давно игнорируют
foreach (line in File.ReadAllLines("test.txt"))
WriteLine(line.Split(' ').Map(int.Parse).Fold(0, _ + _));
BZ>собственно, я от тебя ни одного сравнения немерле с другими языкаи не видел без помоев.
Никто не виноват, что ты мало в жизни видел.
BZ>переименование темы, которым ты ответил на то, что тебя игнорят — это наглое и бепардонное хамство, за которое тебя следовало бы забанить
Ага мне твоего внимания нехватает, вот я к тебе и цепляюсь . А вообще, думай как хочешь.
Ты кстати, в курсе, что открытое обсуждение моделирования это бан дней на 5?
Так что, плиз, все свое недовольство на модераторЭТрсдн.ру.
VD>>Так что лучше чем обижаться пошел бы и ответил бы на вопрос человека... если конечно есть что сказать.
BZ>Влад, если у тебя недостаточно самоуважения, то ты можешь идти общаться в форумы с хамским модерированием. может, для самоощущения совка это нормально: я модератор — ты дурак, ты модератор — я дурак. нормальные же люди тебя давно игнорируют
Я понял — ты ненормальный .
Приятно, что я угадал с названием темы. В следующий раз когда захочется превратить еще одну тему в пенисометрический флэм, вспомни, что ее могут отделить и назвать вот таким вот позорящим тебя образом. Ну, а дальше решай, стоит засерать тему или не стоит.
ЗЫ
Мой либеральный порыв иссяк. Продолжение обсуждения моделирования будет исключительно по личной переписке.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.