Re[2]: несложный ФЯ с человеческим лицом
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 27.03.08 03:23
Оценка: +1
Здравствуйте, BulatZiganshin, Вы писали:

BZ>вообще, было бы интересно написать такой учебник по хаскелю, чтоб люди перестали его бояться


А может в самом языке (или его реализации) есть что-то, чего люди боятся? Тогда учебник не поможет.
Например, люди ищут реальные примеры нетривиальных программ, видят darcs, видят жалобы на его тормоза и пугаются.
Или слышат от thesz о непобежденных мемориликах и опять пугаются..
Re[5]: несложный ФЯ с человеческим лицом
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 27.03.08 03:26
Оценка:
Здравствуйте, Аноним, Вы писали:

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


Если рассматривать ядро языка, то там все стройно и красиво. Но когда начинаются ООП и т.п. — тут действительно можно с Вами согласиться.
Re[3]: несложный ФЯ с человеческим лицом
От: Code Digger Грузия  
Дата: 27.03.08 04:14
Оценка: +1
Здравствуйте, Schade, Вы писали:

S>Здравствуйте, BulatZiganshin, Вы писали:


BZ>>вообще, было бы интересно написать такой учебник по хаскелю, чтоб люди перестали его бояться


S>Это точно. Он не столько сложен, сколько непривычен.

S>А вот учебника "с человеческим лицом" я так и не видел. И практически все прочитавшие то что есть остаются при твердом убеждении, что Haskell — какой-то фанатичный неудобный язык, а монады — всего лишь идиотский способ имитации императивности.

Странно, все учебники (и даже Language Report или Reference — не помню), которые я читал, были на удивление простыми и понятными. Даже введение в монады, где давались азы теории категорий, было предельно простым, не смотря на то, что написано по-английски .
Так что, у меня быстро сформировалось убеждение, что Haskell — фантастически удобный, гибкий и мощный язык, наиболее выдающиеся возможности которого, правда, без вдумчивого изучения понять и применять невозможно.
Re: несложный ФЯ с человеческим лицом
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 27.03.08 05:17
Оценка:
Сам пользуюсь Немерлем в основном именно для таких задач. Язык отлично подходит по всем критериям. Компилятор вполне стабилен, а интеграцией я не пользуюсь. Я себе в Виме настроил подсветку, отступы, компиляцию и запуск программ из редактора.

Пока не знаешь язык, пишешь почти также как на C#. Новые возможности начинаешь применять по мере обучения. Написание скриптов облегчается тем, что не обязательно создавать класс и функцию Main.

using Nemerle.Utility;
using System.IO;
using System;

def SumLines(fileName)
{
    using (reader = File.OpenText(fileName))
    {
        mutable line = reader.ReadLine();
        while (null != line)
        {
            def sum = line
                .Split(array[' '])
                .Map(int.Parse)
                .Fold(0, (x, sum) => x + sum);
            Console.WriteLine(sum);
            line = reader.ReadLine();
        }
    }
}

SumLines("test.txt");
Ce n'est que pour vous dire ce que je vous dis.
Re[4]: несложный ФЯ с человеческим лицом
От: Schade Россия  
Дата: 27.03.08 08:32
Оценка:
Здравствуйте, Code Digger, Вы писали:

CD>Странно, все учебники (и даже Language Report или Reference — не помню), которые я читал, были на удивление простыми и понятными. Даже введение в монады, где давались азы теории категорий, было предельно простым, не смотря на то, что написано по-английски .


Ну, насчет "практически все прочитавшие", да, я погорячился. Но вот если посмотреть сообщения на этом форуме — остается именно такое впечатление (хотя возможно это и один человек чувство массовки создает и кажется я даже знаю какой человек )

CD>Так что, у меня быстро сформировалось убеждение, что Haskell — фантастически удобный, гибкий и мощный язык, наиболее выдающиеся возможности которого, правда, без вдумчивого изучения понять и применять невозможно.

И это тоже существенно. Не каждому захочется вдумчиво изучать.
Re[3]: несложный ФЯ с человеческим лицом
От: realloc Россия  
Дата: 27.03.08 09:16
Оценка: :)
Здравствуйте, Schade, Вы писали:

S>Здравствуйте, BulatZiganshin, Вы писали:


BZ>>вообще, было бы интересно написать такой учебник по хаскелю, чтоб люди перестали его бояться


S>Это точно. Он не столько сложен, сколько непривычен.

S>А вот учебника "с человеческим лицом" я так и не видел. И практически все прочитавшие то что есть остаются при твердом убеждении, что Haskell — какой-то фанатичный неудобный язык, а монады — всего лишь идиотский способ имитации императивности.

А разве это не так? Ухожу, ухожу...
Re[4]: несложный ФЯ с человеческим лицом
От: dr.Chaos Россия Украшения HandMade
Дата: 27.03.08 10:02
Оценка: +1 :))) :))) :)
Здравствуйте, realloc, Вы писали:

S>>Это точно. Он не столько сложен, сколько непривычен.

S>>А вот учебника "с человеческим лицом" я так и не видел. И практически все прочитавшие то что есть остаются при твердом убеждении, что Haskell — какой-то фанатичный неудобный язык, а монады — всего лишь идиотский способ имитации императивности.

R>А разве это не так? Ухожу, ухожу...


Вспоминается анекдот:

Сидят в одной камере зоофил, садист и мазохист.
Зоофил: — Сейчас бы кошечку...
Садист: — Ага, плоскогубцами ...
Мазохист: — Мяу?

Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[6]: несложный ФЯ с человеческим лицом
От: Аноним  
Дата: 27.03.08 10:14
Оценка: +1
Здравствуйте, D. Mon, Вы писали:

DM>Если рассматривать ядро языка, то там все стройно и красиво. Но когда начинаются ООП и т.п. — тут действительно можно с Вами согласиться.


Ядро языка это ML. Но раз уж автор просит для изучения, то ИМХО с ML и надо начинать, а на OCaml можно съехать позже, при необходимости. Иначе просто будет не понять, где ядро, а где привнесённое.
Re[2]: несложный ФЯ с человеческим лицом
От: Roman Odaisky Украина  
Дата: 31.03.08 13:47
Оценка: -1
Здравствуйте, Don Reba, Вы писали:

DR>SumLines("test.txt");


Флеймить так флеймить.
std::cout << std::accumulate(std::istream_iterator<int>(std::cin), std::istream_iterator<int>(), 0) << std::endl;
До последнего не верил в пирамиду Лебедева.
Re[3]: несложный ФЯ с человеческим лицом
От: _pk_sly  
Дата: 31.03.08 13:52
Оценка: -1
Здравствуйте, Roman Odaisky, Вы писали:

RO>Флеймить так флеймить.


Говорят
Автор: Mirrorer
Дата: 27.03.08
, надо пользоваться тем, что встроено в язык
Re[4]: несложный ФЯ с человеческим лицом
От: Roman Odaisky Украина  
Дата: 31.03.08 14:09
Оценка: +4
Здравствуйте, _pk_sly, Вы писали:

RO>>Флеймить так флеймить.


__>Говорят
Автор: Mirrorer
Дата: 27.03.08
, надо пользоваться тем, что встроено в язык :)


А я чем? Там «std::» для мебели, по-твоему?
До последнего не верил в пирамиду Лебедева.
Re[3]: несложный ФЯ с человеческим лицом
От: Mirrorer  
Дата: 31.03.08 14:22
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Флеймить так флеймить.


Действительно, добавим изврата
awk '{sum=0; for(i=1;i<=NF;i++) sum += $i; print sum }' t.txt
Re[4]: несложный ФЯ с человеческим лицом
От: Roman Odaisky Украина  
Дата: 31.03.08 15:01
Оценка:
Здравствуйте, Mirrorer, Вы писали:

RO>>Флеймить так флеймить.


M>Действительно, добавим изврата

M>
M>awk '{sum=0; for(i=1;i<=NF;i++) sum += $i; print sum }' t.txt
M>

Разве это изврат? Вот zsh — изврат так изврат:
read s && echo $((${s:gs: :+:}))

Только что общего имеет мой код на C++ с извратом?
До последнего не верил в пирамиду Лебедева.
Re[3]: несложный ФЯ с человеческим лицом
От: Tonal- Россия www.promsoft.ru
Дата: 31.03.08 15:15
Оценка: +1
Здравствуйте, Roman Odaisky, Вы писали:
RO>Флеймить так флеймить.
RO>
std::cout << std::accumulate(std::istream_iterator<int>(std::cin), std::istream_iterator<int>(), 0) << std::endl;

Эт получается сумма всех чисел в файле, а нада суммы по строчкам:
using namespace std;

while (cin) {
  string line;
  getline(cin, line);
  cout<<accumulate(istream_iterator<int>(istringstream(line)), istream_iterator<int>(), 0)<<endl;
}
... << RSDN@Home 1.2.0 alpha 4 rev. 1047>>
Re[5]: несложный ФЯ с человеческим лицом
От: Mirrorer  
Дата: 01.04.08 05:57
Оценка: :)
Здравствуйте, Roman Odaisky, Вы писали:

RO>>>Флеймить так флеймить.


RO>
read s && echo $((${s:gs: :+:}))


RO>Только что общего имеет мой код на C++ с извратом?

К коду на С++ никаких претензиц. Изврат был предложен исключительно в желании пофлеймить
Re: несложный ФЯ с человеческим лицом
От: Аноним  
Дата: 02.04.08 01:04
Оценка:
На линуксе я пользуюсь sbcl (common lisp)
паттерн-матчинг прикручивается библиотекой http://www.cliki.net/pcond ну и там же на сайте можно list-comprehensions найти.
Как замена питона для скриптинга вполне годится.
Практичный язык с кучей библиотек.
Синтаксис лисп — куда уж легче.

На винде можно попробовать clisp или lispworks (к сожалению trial)

Еще есть clojure.org новенький язык лисп семейства на JVM
Из него все библиотеки java вызываются как родные.
Re[5]: несложный ФЯ с человеческим лицом
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.04.08 09:07
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

__>>Говорят
Автор: Mirrorer
Дата: 27.03.08
, надо пользоваться тем, что встроено в язык


RO>А я чем? Там «std::» для мебели, по-твоему?


Думаю, это он о том, что решение скорее не на языке, а в библиотеке. При наличии подобных функций в библиотеке решение, скажем на C# выглядело бы примерно так:
Write(IStreamIterator<int>(cin).Sum());

И то приходится учесть, что решена не та задача
Автор: Tonal-
Дата: 31.03.08
.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: несложный ФЯ с человеческим лицом
От: Roman Odaisky Украина  
Дата: 02.04.08 09:46
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Думаю, это он о том, что решение скорее не на языке, а в библиотеке. При наличии подобных функций в библиотеке решение, скажем на C# выглядело бы примерно так:

VD>
Write(IStreamIterator<int>(cin).Sum());

Ничего себе! Влад заявляет, что стандартная библиотека C++ богаче, чем в C#! Куда катится мир?
До последнего не верил в пирамиду Лебедева.
Re[4]: несложный ФЯ с человеческим лицом
От: Code Digger Грузия  
Дата: 03.04.08 03:03
Оценка:
Простите, я кажется упустил тот момент, когда удалили комментарии про Хаскель и Джей?

Это с чем-то связано?

А то я хотел сохранить себе страничку с ними и поизучать код на досуге...
Re[7]: несложный ФЯ с человеческим лицом
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 03.04.08 05:32
Оценка: +1
Roman Odaisky,

RO> Ничего себе! Влад заявляет, что стандартная библиотека C++ богаче, чем в C#! Куда катится мир?


Если функции нет, то её нет, это так сказать объективная реальность. Так что ничего удивительного

[off]Роман, а почему в подписи не написать чуть компактнее: !73x [/off]
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.