Re[17]: MIT переходи со схемы на...
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.12.06 05:35
Оценка:
Здравствуйте, R.K., Вы писали:

RK>Поправочка. TemplateHaskell — не отдельная модификация Haskell, а расширение GHC, реализованное в виде модуля Language.Haskell.TH. Так что можно считать, что в Хаскеле есть метапрограммирование. Кстати, этот модуль применяется в GHC в подсистемах deSugar и typecheck — не очень-то похоже, что он экспериментальный


Над написанный на TemplateHaskell скомпилируется без этого расширения? Нет? Значит все таки это отдельный язык. Что до использования, то что-то я ни разу не видел ни одного пример на нем. Как ты думаешь почему это так?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[21]: MIT переходи со схемы на...
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.12.06 05:53
Оценка: -1
Здравствуйте, Mirrorer, Вы писали:

M>Допустим (чисто гипотетически) что у тебя есть требование не использовать .NET

M>Твое мнение о Qi в таком случае ?

Трудно оценить вот так сразу. Но лисповские мотивы мне не нравятся сразу.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[34]: MIT переходи со схемы на...
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 06.12.06 06:29
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Кстати, grep под Виндовс нет. Так что или ставить Цигвин, или возиться с разными наборами утилит для виндовс и еще чего-то там.


Не любить и не знать Unix -- это я еще понимаю. Но не любить и не знать Windows? Windows Services for UNIX.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[37]: MIT переходи со схемы на...
От: Сергей  
Дата: 06.12.06 07:30
Оценка: +3
VladD2 пишет:
> Для начала тебе прийдется поставить Цигвин (что сомо по себе не
> просто). Потом разобраться в нем (тоже не просто). А потом ты с
> удивлением обнаружишь, что линуксовые утилиты, к примеру, не понимают
> виндовые концы строк.
Ух ты Не знал, не знал... Вот уже два года, как пользую GNU утилиты
под виндой, а вот только сейчас узнал, что и Цигвин забыл поставить, и
что виндовые концы строк они некорректно обрабатывают...
Posted via RSDN NNTP Server 2.0
Re[35]: MIT переходи со схемы на...
От: Сергей  
Дата: 06.12.06 07:33
Оценка:
eao197 пишет:
> VD>Кстати, grep под Виндовс нет. Так что или ставить Цигвин, или
> возиться с разными наборами утилит для виндовс и еще чего-то там.
>
> Не любить и не знать Unix -- это я еще понимаю. Но не любить и не
> знать Windows? Windows Services for UNIX
> <http://www.microsoft.com/technet/interopmigration/unix/sfu/sfu35int.mspx&gt;.
За GNU утилитами лучше ходить сюда: http://gnuwin32.sourceforge.net
Posted via RSDN NNTP Server 2.0
Re[36]: MIT переходи со схемы на...
От: Alexey Chen Чили  
Дата: 06.12.06 08:13
Оценка:
>> VD>Кстати, grep под Виндовс нет. Так что или ставить Цигвин, или
>> возиться с разными наборами утилит для виндовс и еще чего-то там.
>> <http://www.microsoft.com/technet/interopmigration/unix/sfu/sfu35int.mspx&gt;.
С>За GNU утилитами лучше ходить сюда: http://gnuwin32.sourceforge.net

Или сюда http://www.mingw.org/msys.shtml
Re[44]: MIT переходи со схемы на...
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 06.12.06 08:47
Оценка: +1
Здравствуйте, PhantomIvan, Вы писали:

ANS>>Контрольный вопрос: она таки подсчитывает колличество совпадающих строк или колличество вхождений паттерна в строку?

PI>количество совпадающих строк

То есть "regexp match(line)" находит только первое совпадение с патерном и не срабатует для всех последующих?

PI>но это всё неважно, важно что шелловики могут не замечать, что сливают в дискуссии,

PI>а техника "скриптов" на основе немерле всё равно будет более прогрессивной

ROTFL
http://www.smalltalk.ru | << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[36]: MIT переходи со схемы на...
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 06.12.06 09:28
Оценка: +2
Здравствуйте, Сергей, Вы писали:

>> Не любить и не знать Unix -- это я еще понимаю. Но не любить и не

>> знать Windows? Windows Services for UNIX
>> <http://www.microsoft.com/technet/interopmigration/unix/sfu/sfu35int.mspx&gt;.
С>За GNU утилитами лучше ходить сюда: http://gnuwin32.sourceforge.net

Дело не в этом, а в том, что SFU официально распространяется Microsoft-ом и более того, является частью стратегического направления Microsoft по перетягиванию Unix-овых клиентов на Windows. И странно от пиарщиков M$-продуктов не слышать про такой продукт. Видимо они просто знают лишь то, что им удобно знать.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[37]: MIT переходи со схемы на...
От: Cyberax Марс  
Дата: 06.12.06 09:43
Оценка:
VladD2 wrote:
> PI>насчет времени ты точно не прав, т.к. мне сначала хелп по этим
> командам посмотреть, и нужные модификаторы найти
> Для начала тебе прийдется поставить Цигвин (что сомо по себе не просто).
> Потом разобраться в нем (тоже не просто). А потом ты с удивлением
> обнаружишь, что линуксовые утилиты, к примеру, не понимают виндовые
> концы строк.
Уже 10 лет пользуюсь набором утиллит из пакета UnixTools. Не требуют
Cygwin'а и замечательно работают со всеми видами концов строк (включая
маковский).
Posted via RSDN NNTP Server 2.1 beta
Sapienti sat!
Re[22]: MIT переходи со схемы на...
От: cl-user  
Дата: 06.12.06 10:03
Оценка: :))
Здравствуйте, VladD2, Вы писали:

VD>Трудно оценить вот так сразу. Но лисповские мотивы мне не нравятся сразу.


А можно забыть про "нравится/не нравится" в отношении ЯП? А то сразу приходит на ум, что женщины выбирают автомобиль в первую очередь по цвету.
Re[18]: MIT переходи со схемы на...
От: R.K. Украина  
Дата: 06.12.06 16:57
Оценка: 8 (1) +1
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, R.K., Вы писали:


RK>>Поправочка. TemplateHaskell — не отдельная модификация Haskell, а расширение GHC, реализованное в виде модуля Language.Haskell.TH. Так что можно считать, что в Хаскеле есть метапрограммирование. Кстати, этот модуль применяется в GHC в подсистемах deSugar и typecheck — не очень-то похоже, что он экспериментальный


VD>Над написанный на TemplateHaskell скомпилируется без этого расширения? Нет? Значит все таки это отдельный язык.


Под "Над" разумею "Код". Компилятор GHC скомпилирует код с этим модулем. Другие — скорее всего нет. Но если есть хоть один компилятор (кстати, он наиболее продвинутый), значит TemplateHaskell можно считать законной частью языка, но, естественно, не стандарта.

VD>Что до использования, то что-то я ни разу не видел ни одного пример на нем. Как ты думаешь почему это так?


Еще раз. Поищи в GHC в вышеуказанных подсистемах. Мое же мнение такое: я почти год изучаю Хаскель, написал уже кучку кода и даже не смотрел в сторону TemplateHaskell и других расширений стандартного Haskell 98. Как думаешь, почему? Я думаю потому, что даже без метапрограмминга этот язык позволяет делать очень интересные вещи, которые криво и многословно можно реализовать на других языках. Выигрывают лишь те из них, что позволяют метапрограммирование (что есть по сути своей генерация кода на том же языке), т.е. программисты на этих языках вынуждены писать макросы, восполняющие недостаток языка в краткости. Хорошо ли это или плохо, я не могу сказать. Мне больше нравится думать о программе, как о конечной сущности, не как о чем-то, расширяющемся в больший код.
You aren't expected to absorb this
Re[34]: MIT переходи со схемы на...
От: EvilChild Ниоткуда  
Дата: 06.12.06 17:27
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Кстати, grep под Виндовс нет. Так что или ставить Цигвин, или возиться с разными наборами утилит для виндовс и еще чего-то там.

GNU utilities for Win32 — один раз поставил, прописал в PATH и наслаждаешься.

VD>Лично я под Виндовс для простеньких задач не требующих особого программирования использую VS2005. В ней есть поиск и замена с регекспами. Очень удобно.

Недавно попросили достать список уникальных IP адресов с которых ходили на ftp под IIS (логов на 500 метров).
Т.е. получить множество строк вида:

00:08:58 127.0.0.1 anonymous [47987]USER anonymous 331 0

и из них всё это достать. Там есть строки и другой структуры (для тех, кто с логами IIS дела не имел).
Мой основной рабочий инструмент C# 2.0 (VS 2005).
Писать прогу для этого я посчитал оверкилом.
Я поступил так:

grep -h USER *.log | gawk "{ print $2 }" | sort | uniq

В общем заюзал специализированный DSL.
Если ты приведёшь способ более эффективный по времени как это сделать из VS 2005 буду признателен.
Другие варианты тоже интересны (не VS 2005).
now playing: Corrupt Souls — Spacecoke
Re[38]: MIT переходи со схемы на...
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.12.06 18:07
Оценка:
Здравствуйте, Сергей, Вы писали:

С>Ух ты Не знал, не знал... Вот уже два года, как пользую GNU утилиты

С>под виндой, а вот только сейчас узнал, что и Цигвин забыл поставить, и
С>что виндовые концы строк они некорректно обрабатывают...

Рад что появились какие-то еще средства. Раньше кроме Цигвина я ничего найти не мог. Но один хрен их прийдется искать, ставить, изучать...
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[46]: MIT переходи со схемы на...
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.12.06 18:07
Оценка:
Здравствуйте, Gajdalager, Вы писали:

G>Не то.. Это работа с SQL через макросы.. Я имел в виду "вместо синтаксиса SQL использовать Nemerle". Хотя согласен, пример дурацкий


А зачем сравнивать декларативый язык запросов с универсальным языком скриптов?
Давай такогда так. Вместо регексов ты будешь использовать Баш. Бред? Ну, вот такой же бред замена SQL-я универсальным языком.
Хотя рельно языки вроде Немерла без проблем могут обеспечить инфраструктуру запросов не хуже чем в SQL. Смотри, например, LINQ от МС.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[40]: MIT переходи со схемы на...
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.12.06 18:07
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>В третьем шарпе это можно записать еще компактнее благодаря екстеншн методам, но я не рискну здесь привести код, т.к. тройку знаю скорее теоретически.


Ради хохмы написал тоже самое на Немерле:
using System;
using System.Console;
using Nemerle.Utility;
using SCG = System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;

module Utils
{
  public FileLines(this fileName : string) : SCG.IEnumerable[string]
  {
    using(tr = File.OpenText(fileName))
      while(tr.Peek() >= 0)
        yield tr.ReadLine();
  }
}

def file = @"c:\boot.ini";
    
WriteLine(file.FileLines().Fold(0, (line, acc) => acc + Regex("WINDOWS").Matches(line).Count));


S>Реализовать полностью корректный код можно только изменив RegEx: сейчас он умеет принимать только строку, а не IEnumerable<char>.

S>Поэтому предложенная реализация благополучно сдохнет на 10 гигах без переносов. В отличие, смею полагать, от grep.

На 10 гигах сдохнит скорее всего что угодно. Но какой смысл в этом если текстовые файлы не превышают 3-х меторов.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[41]: MIT переходи со схемы на...
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.12.06 18:07
Оценка:
Здравствуйте, Andrei N.Sobchuck, Вы писали:

ANS>Хе-хе. Посмотрел на твой код ниже. И таки не всё в порядке. Считать нужно не кол-во совпадений, а кол-во строк. Мой вывод: нормальный программист должен взять готовый инструмент, а не день отлаживать свой велосипед


Легким движением руки брюки:
file.FileLines().Fold(0, (line, acc) => acc + Regex("WINDOWS").Matches(line).Count)

превращаются...
file.FileLines().Fold(0, (line, acc) => acc + if (Regex("WINDOWS").IsMatch(line)) 1 else 0)


Если подобная фигня нужна часто, то можно сделать функцию аналог грепа. Если не часто, то и так можно пережить. А то и просто в студии поиск сделать.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[42]: MIT переходи со схемы на...
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.12.06 18:07
Оценка:
Здравствуйте, Gajdalager, Вы писали:

G>Ну ведь есть товарищи, которые утверждают что не так удобно как на немерле


Зависит от объема и сложности. Чем сложнее задача тем проще она решается универсльными языками. А греп — это только утилита. Ее без проблем можно оформить в виде библиотечной фнукции.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[35]: MIT переходи со схемы на...
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.12.06 18:07
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Плюс Скала — имеративный язык, со всеми вытекающими (хотя чётко аргументировать тут сейчас не могу).


Эрлэнг тоже не чистый ФЯ. Что из этого вытекает?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[36]: MIT переходи со схемы на...
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.12.06 18:07
Оценка:
Здравствуйте, PhantomIvan, Вы писали:

К>>Если по сути — интересно, вроде как всего в 2 раза медленней Эрланга.

PI>естественно, на дотнете должно заработать гораздо быстрее

Это зависит от качества реализации.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[39]: MIT переходи со схемы на...
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.12.06 18:07
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Нет там потоков.

К>В том весь и смысл, что параллельность получается не на потоках ОС, т.е. нет постоянных переключений контекста, что позволяет ускорить работу приложения (при наличии нескольких процессов).

Ты бы разобрался в том что обсуждаешь, а потом бы разговоры вел. Чушь ведь несешь.

Ни одна современная ОС не даст прложению доступа к преключению контекстов физических процессоров. Так что что Эрлэнг, что Скала несколько процессоров будут использовать через потоки ОС. В Эрланге сделано распараллеливание на уровне псевдо перключений контекстов. Реально все происходит в рамках одного потока. И за счет того, что контекст получается маленьким и не происходит переключения в нулевое кольцо защиты процессора, скорость переключения получаетсявысокой. До недавнего времени Эрланг вообще не мог распараллеливат задачи на разных процессорах в рамках одного физического процесса. Недавно такая возможность была добавлена, но оверхэда ОС они обойти не смогут. Так что ручное распараллеливание на более низком уровне окажется за всегда более быстрым.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.