Re[5]: Жизнь без IDE
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.09.09 17:18
Оценка:
Здравствуйте, thesz, Вы писали:

T>Defined at видишь? Поскольку "иногда хочется", то этого должно быть достаточно всегда. Было бы часто, был бы другой коленкор, но тогда надо выбирать другой язык.


Другими словами, вместо того чтобы встроить в редактор все необходимое для ускорения и упрощения работы с проектом мы посылаем всех выбирать другой язык?

Теперь становится понятным почему люди именно так и поступают .

Если серьезно, то ты нехотя ответил на многие вопросы. Если выбросить из твоих ответов много букв и бравады, то в них остается одно, но весьма рациональное зерно. Ты вместо возможностей IDE пользуешься похожими возможностями предоставляемыми REPL-ом. Так?

Тогда у меня остается только один вопрос. Если нужные возможности практически есть, то почему бы их не прикрутить к редактору, чтобы не нужно было долбить что-то в командной строке и потом искать что-то в модуле? Ведь, как я понимаю — это вполне возможно и не так уж сложно было бы сделать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Жизнь без IDE
От: vshabanov http://vshabanov-ru.blogspot.com
Дата: 28.09.09 17:44
Оценка: 67 (6)
Здравствуйте, VladD2, Вы писали:

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


DM>>Ну, ежели опечатался в идентификаторе или забыл где-нибудь скобку или разделитель, то полезно это увидеть сразу при наборе, а не после попытки компиляции. Тут IDE рулит вне зависимости от языка. Имхо, про ненужность IDE говорят только те, у кого нет достойных IDE просто.


VD>Кстати, я бы с огромным удовольствием послушал бы тех кто считает, что IDE с разными автодополнениями не нужны как класс. Интересно как у них построен процесс разработки? Как они получают информацию о внешних типах и функциях которые нужно вызвать? И так далее. То ест как протекает процесс кодирования (ну, и разработки в целом) и отладки без использования поддержки IDE.


Информация о типах/ф-ях получается из документации и/или из просмотра сорцов. Плюс команда :t в ghci (или C-c C-t в emacs).

Пошаговая отладка не нужна, обычно интересно не мгновенное состояние программы, показываемое отладчиком, а некоторая история действий/состояний. Т.е. логи.

При чистом коде и наличии интерпретатора, большая часть программы отлаживается тупо вызовом тестовых ф-ий из интерпретатора.

Кода пишется обычно немного, у меня получается в среднем килострока (с комментариями и пустами строками) хаскеля/окемла в месяц. Т.е. 50 строк в день. Это отлаженного кода в конечном продукте. Реально пишется/меняется строк 150. В общем, чтобы поправить 150 строк никакого IDE по-моему не нужно.

Т.е. IDE в целом -- экономия на спичках. Кода редактируется мало, доки читать все равно надо. Зачем мне автокомплит ф-ии, если я не знаю, что она делает? А если ф-ия уже используется, то есть emacs-овый автокомплит по используемым в тексте словам.

И о недостатках IDE.

IDE -- интегрированная среда, где отдельные элементы обычно выбираются разработчиком, а не пользователем. По-этому IDE в принципе никогда не будут устраивать всех пользователей. Например, еще когда я пользовался IDE (VC++, C++Builder), я пользовался ими только для рисования формочек и отладки, редакторы у них были отстойными.

(Кстати, emacs&linux получились удачными именно благодаря тому, что интеграция отдана на откуп пользователю. Да и вообще, большинство удобных "IDE" люди собирают себе сами: у кого FAR с плагинами, у кого vim, у кого emacs, а кто и в блокноте всех сделает).

IDE навязывает плохой стиль разработки. Пользовались ли люди IDE можно определить по коду. Если код похож на бесформенное месиво -- значит пользовались. IDE всё подсказывает и люди перестают делать код так, чтобы он был понятен простым просмотром файлов в каталогах. Да и документацию по такому коду скорее всего не сгенеришь (ибо зачем, "у нас же class browser есть и в сорец всегда можно попасть").

IDE часто имеют большую мнемоническую нагрузку: тонна кнопок, деревьев классов, проектов, менюшки. Получается, что кода-то и не видно. Еще впендюривают в них online-проверку, чтобы даже в окне редактирования что-нибудь мигало и отвлекало (а когда нужно, наоборот, фиг найдешь, где там что красненьким выделено). Полная потеря фокуса.

IDE разные -- я пишу и на Haskell, и на Java, и на C++, также экспериментирую со всякими Coq, Agda, иногда редактирую sh, Makefile, python. Работаю под линуксом, виндой, в удаленном терминале. Нахрена мне столько IDE? Одно только переключение между ними сожрет больше времени, чем любой даваемый ими прирост. Я, кстати, даже по тырнету хожу conkeror-ом -- emacs-оподобным браузером, чтобы не учить отдельные keystrokes (да и мышкой не пользоваться тоже).

IDE часто предполагают работу с мышкой -- долго и нудно. Пока я буду мышой тыкать по дереву/закладке в IDE, я уже перейду на файл автокомплитом/инкрементальным поиском.

IDE часто имеют свой менеджер проектов. Хоть как-то его настроить под свои нужды уже подвиг. Запустить сборку проекта с консоли тоже тяжко. Т.е. использование IDE мало того, что менее удобно, так еще оно и привязывает к этой IDE (что очень неудобно для людей, этой IDE не пользующихся). Из-за этого привязывания (типичный one microsoft way подход к софту) получается сковывание мозгов -- люди не могут даже понять, как же вообще можно жить без IDE.

У меня, кстати, даже рабочего стола с иконками нет -- тайлящийся оконный менедер сильно удобнее, и midnight commander-ом я пользуюсь редко -- cd с автокомплитом работает быстрее, чем долбить вверх/вниз/энтер как обезьянка.

Так что жить можно много без чего, причем без потери производительности (а даже с приростом).

Кстати настроенный emacs + linux + нормальный оконный менеджер -- это более чем IDE. Нет только отладки, class browser-а и автокомплита по коду (просто по словам есть). Отладка не нужна, вместо class browser-а просто ходим по файлам (и переключаемся между буферами инкрементальным поиском), для автокомплита по ф-иям достаточно открыть модуль с этими ф-иями, а для библиотек все равно надо в доку лезть.

Но, опять же, я не думаю, что если бы я писал в виндовом блокноте, то моя производительность уменьшилась бы в разы. Так процентов на 10-20 максимум (и то, из-за автокомплита в основном, т.к. я медленно печатаю). Для сравнения, на хаскеле я решаю задачи в среднем раза в 2 быстрее, чем на С++, а если правильно выбирать способ решения задачи, то можно вообще получить огромную разницу. Т.е. есть более мощные способы увеличить производительность, чем спички-IDE.

Вообще, возьми какой-нить FAR и попробуй в нем пописать. Через какое-то время у тебя все выправится (и исходный код в том числе) и не будет возникать вопросов, как на свете без IDE прожить.

VD>Мне периодически приходится писать писать код без поддержки IDE. Не скажу, что это очень трудно. Но определенный дискомфорт испытываю. Помогает отладчик. Когда в отладчике видишь структуру данных, то конечно проще написать несколько строк кода, но потом без многократных итераций "компиляция <-> правка" не обходится. Если же код пишется в IDE, то компиляция в большинстве случаев проходит с первого раза, да и отладка требуется реже.

VD>Недавно переписывал части кода в интеграции немерла и был момент когда в IDE не было части функций. Например, не работали хинты к методам. При этом можно было бы смотреть типы выражений (в том числе и типов... то что тут назвали "мегафичей"), но вот списка перегрузок (описания параметров для каждой из перегрузок) получить было нельзя. Так вот даже это уже замедлило работу в несколько раз, так как пришлось лазить и выяснять описания типов для каждого метода. Эта проблема не так актуальна в языках основанных на алгоритме хиндли-миллера, так так полноценной перегрузки в них нет (не считая расширений вроде классов типов), но все же и в них приходится лазить по модулям и выяснять описания функций. А это время и нервы которые лучше потратить на разработку и отладку алгоритмов.
VD>Когда я слышу про отладку... что мол она не нужна, то тоже как-то смешно становится. Мне не понятно как можно разбираться с чужим, объемистым, кодом в условиях когда нет ни отладчика, ни даже полной информации о типах. Ну, а в таких языках как Haskell и F# где есть или намеки на перегрузку (классы типов) или почти полноценная перегрузка (как F#) отладка, на мой взгляд вообще необходима.

Черт, а как же люди пишут на Хаскеле? О том, что у него есть отладчик я только в этом триде и узнал (вернее вспомнил, т.к. вылетело из головы за ненадобностью). Однако это не мешает. Бывают моменты, что хотелось бы пошагать по коду, но это показатель того, что код говно. А был бы отладчик, так бы и шагали, и не пытались бы улучшить код.

Еще скажу про отладку в Си. В отладчике в Си обычно сидишь, когда что-то очень серьезно глючит. Обычно это связано с засером памяти. И отладчик не помогает их найти (а наоборот вызывает огромную трату времени впустую). Помогают специализированные тулы (valgrind).

А про перегрузку я вообще не понял, чем она мешает?
Re[6]: Жизнь без IDE
От: Mirrorer  
Дата: 28.09.09 17:46
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Тогда у меня остается только один вопрос. Если нужные возможности практически есть, то почему бы их не прикрутить к редактору, чтобы не нужно было долбить что-то в командной строке и потом искать что-то в модуле? Ведь, как я понимаю — это вполне возможно и не так уж сложно было бы сделать.


Если я правильно помню, то хаскельная мода к емаксу так и делает. она пишет в окошко интерпретатора :i или :t и результат выводит там же. вешается на любой хоткей.
Re[6]: Жизнь без IDE
От: MigMit Россия http://migmit.vox.com
Дата: 28.09.09 17:51
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Другими словами, вместо того чтобы встроить в редактор все необходимое для ускорения и упрощения работы с проектом мы посылаем всех выбирать другой язык?


Естественно. Если язык настолько неудобен, что для работы с ним нужно столько всего навешивать — мы идём выбирать другой язык. Совершенно нормальное поведение, вообще-то.
Re[5]: Жизнь без IDE
От: Mirrorer  
Дата: 28.09.09 18:15
Оценка: +1
Здравствуйте, thesz, Вы писали:

T>Законы монад никто не отменял. Это раз.

То ли я где-то слышал, то ли читал что QuickCheck не совсем все законы выполняет. Но могу ошибаться.

T>Для функциональной части программы достаточно названия функции и её типа, чтобы примерно понять, что ждать на выходе. Это обобщение пунтка один, поэтому это два.

ключевое слово примерно. по бинду SomeWierdComposition я могу примерно понять что комбинируются два вычисления по правилам SomeWierdComposition.

T>Поэтому надо минимизировать IO, что выгодно само по себе. Это три.

А как бы никто и не спорит Но монады ж они не только для ЙО пользуются. Ну и вопрос был необязательно про бинд, а про любую функцию с которой "не, ну все понятно, но что конкретно ?" (с)

T>Defined at видишь? Поскольку "иногда хочется", то этого должно быть достаточно всегда. Было бы часто, был бы другой коленкор, но тогда надо выбирать другой язык.

Зачем другой язык ? Мне кажется емаксовую моду вполне можно этому научить. Он умеет показывать типы функций в подсказках, значит умеет их находить как-то. Надо только разобраться к какой монаде кидать. Но тип функции в которой мы находимся я так подозреваю тоже можно получить. Вполне реализуемо. Но может действительно оно не так сильно пока надо. Тем не менее фича удобная

T>Ещё Haddock умеет вставлять ссылки на исходники (ссылка source справа от названия функции).

Прикольная фича. Но для этого как минимум надо иметь haddock совместимые комментарии.
Re[6]: Жизнь без IDE
От: MigMit Россия http://migmit.vox.com
Дата: 28.09.09 18:21
Оценка:
Здравствуйте, Mirrorer, Вы писали:

T>>Defined at видишь? Поскольку "иногда хочется", то этого должно быть достаточно всегда. Было бы часто, был бы другой коленкор, но тогда надо выбирать другой язык.

M>Зачем другой язык ? Мне кажется емаксовую моду вполне можно этому научить. Он умеет показывать типы функций в подсказках, значит умеет их находить как-то.

Обычный вывод типов. Emacs просто обращается к GHCi.
Re[7]: Жизнь без IDE
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.09.09 18:49
Оценка:
Здравствуйте, MigMit, Вы писали:

MM>Естественно. Если язык настолько неудобен, что для работы с ним нужно столько всего навешивать — мы идём выбирать другой язык. Совершенно нормальное поведение, вообще-то.


Так может в этом и кроется загадка хаскеля? В том смысле, что при весьма лестных отзывах о языке пишут на нем единицы. Возможно как раз дело в том, что это как раз те единицы которые предпочитают спартанский образ жизни?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Жизнь без IDE
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.09.09 18:50
Оценка:
Здравствуйте, Mirrorer, Вы писали:

M>Если я правильно помню, то хаскельная мода к емаксу так и делает. она пишет в окошко интерпретатора :i или :t и результат выводит там же. вешается на любой хоткей.


Как я понимаю, для того чтобы все эти :i и :t работали, предварительно в интерпретатору нужно скормить содержимое всего проекта. Так?
Сколько это занимает времени?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Жизнь без IDE
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.09.09 18:52
Оценка:
Здравствуйте, vshabanov, Вы писали:

Поясню оценку.

Она не означает, что я согласен с автором сообщения. Более того по большей части я с ним как раз не согласен.
Оценка за попытку описать технику своей работы. Это многое объясняет... ну, по крайней мере для меня.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Жизнь без IDE
От: thesz Россия http://thesz.livejournal.com
Дата: 28.09.09 19:38
Оценка:
Здравствуйте, VladD2, Вы писали:

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


T>>Defined at видишь? Поскольку "иногда хочется", то этого должно быть достаточно всегда. Было бы часто, был бы другой коленкор, но тогда надо выбирать другой язык.

VD>Другими словами, вместо того чтобы встроить в редактор все необходимое для ускорения и упрощения работы с проектом мы посылаем всех выбирать другой язык?

Объясню.

Часто требуется с другими языками, не с Хаскелем.

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


Потому, что они думают, как ты.

VD>Если серьезно, то ты нехотя ответил на многие вопросы. Если выбросить из твоих ответов много букв и бравады, то в них остается одно, но весьма рациональное зерно. Ты вместо возможностей IDE пользуешься похожими возможностями предоставляемыми REPL-ом. Так?


Даже если и так, то процент моего использования возможностей REPL вне "загрузил-исправил-загрузил-проверил" ниже в разы, чем на других языках.

Собственно, что мною и ценится.

И другими тоже.

VD>Тогда у меня остается только один вопрос. Если нужные возможности практически есть, то почему бы их не прикрутить к редактору, чтобы не нужно было долбить что-то в командной строке и потом искать что-то в модуле? Ведь, как я понимаю — это вполне возможно и не так уж сложно было бы сделать.


Именно потому, что ценность в том, что это не нужно.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[8]: Жизнь без IDE
От: Mirrorer  
Дата: 28.09.09 19:40
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Как я понимаю, для того чтобы все эти :i и :t работали, предварительно в интерпретатору нужно скормить содержимое всего проекта. Так?

VD>Сколько это занимает времени?

Я с большими проектами не работал поэтому сказать не могу. Надо будет ради прикола попытаться проделать этот трюк с исходниками самого хаскела. Но для небольших проектов это время неощутимо практически.
Re[8]: Жизнь без IDE
От: vshabanov http://vshabanov-ru.blogspot.com
Дата: 28.09.09 19:40
Оценка: 45 (1)
Здравствуйте, VladD2, Вы писали:

VD>Как я понимаю, для того чтобы все эти :i и :t работали, предварительно в интерпретатору нужно скормить содержимое всего проекта. Так?

VD>Сколько это занимает времени?

Загрузка проекта файлов из 50 занимает несколько секунд. Если делалось что-то хардкорное с типами, то может и полминуты грузить десяток файлов. Делается это один раз, дальше делается :r -- перегрузка текущего модуля -- перегружаются только измененные модули, это уже шустро.

Если что-то уж совсем большое, то можно вынести в package (грузится почти мгновенно). Еще можно скомпилить некоторые файлы, если они не меняются (по сути типа локальный пакет получается, но тут есть опасности, что .o не соответствует .hs).
Re[8]: Жизнь без IDE
От: vshabanov http://vshabanov-ru.blogspot.com
Дата: 28.09.09 19:51
Оценка:
Здравствуйте, VladD2, Вы писали:

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


MM>>Естественно. Если язык настолько неудобен, что для работы с ним нужно столько всего навешивать — мы идём выбирать другой язык. Совершенно нормальное поведение, вообще-то.


VD>Так может в этом и кроется загадка хаскеля? В том смысле, что при весьма лестных отзывах о языке пишут на нем единицы. Возможно как раз дело в том, что это как раз те единицы которые предпочитают спартанский образ жизни?


Хм, для меня спартанский образ жизни это FAR и винда (да и то ghci, инет, консоль и make там есть, хотя и не так удобно интегрированы).

Emacs+linux+нормальный wm покруче многих IDE будет. Я может даже и не сильно против всяких браузеров кода и автокомплитов, но моя "IDE" настолько лучше всяких VS и Eclipse-ов, что мне проще обходиться без них (к тому же это делает код лучше .
Re[8]: Жизнь без IDE
От: MigMit Россия http://migmit.vox.com
Дата: 28.09.09 19:54
Оценка: :)))
Здравствуйте, VladD2, Вы писали:

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


VD>Так может в этом и кроется загадка хаскеля? В том смысле, что при весьма лестных отзывах о языке пишут на нем единицы. Возможно как раз дело в том, что это как раз те единицы которые предпочитают спартанский образ жизни?


Отношение количества хаскеллистов к количеству пишущих на других языках примерно равно отношению количества умных к количеству идиотов. Это в качестве альтернативной гипотезы.
Re[8]: Жизнь без IDE
От: MigMit Россия http://migmit.vox.com
Дата: 28.09.09 19:56
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Как я понимаю, для того чтобы все эти :i и :t работали, предварительно в интерпретатору нужно скормить содержимое всего проекта. Так?

VD>Сколько это занимает времени?

В разы меньше, чем время загрузки солюшена в студию.
Re[9]: Жизнь без IDE
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.09.09 20:30
Оценка:
Здравствуйте, vshabanov, Вы писали:

V>Загрузка проекта файлов из 50 занимает несколько секунд. Если делалось что-то хардкорное с типами, то может и полминуты грузить десяток файлов. Делается это один раз, дальше делается :r -- перегрузка текущего модуля -- перегружаются только измененные модули, это уже шустро.


V>Если что-то уж совсем большое, то можно вынести в package (грузится почти мгновенно). Еще можно скомпилить некоторые файлы, если они не меняются (по сути типа локальный пакет получается, но тут есть опасности, что .o не соответствует .hs).


А тебе не хотелось бы, чтобы все это делалось автоматом? Ну, чтобы в бэкграунде давно не изменяемые модули компилировались или помещались в пакет. А измененные чтобы сами перезагружались или перекомпилировались (опять же в бэкграунде)? Ну, чтобы ты тупо выполнил команду :xyz с путем к каталогу проекта и все остальное чтобы сделал REPL?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Жизнь без IDE
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.09.09 20:32
Оценка: 1 (1) +1
Здравствуйте, MigMit, Вы писали:

MM>Отношение количества хаскеллистов к количеству пишущих на других языках примерно равно отношению количества умных к количеству идиотов. Это в качестве альтернативной гипотезы.


А каково отношение хороших программ написанных на хаскеле и хороших программ написанных не на нем?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Жизнь без IDE
От: vshabanov http://vshabanov-ru.blogspot.com
Дата: 28.09.09 22:02
Оценка: 4 (1)
Здравствуйте, VladD2, Вы писали:

V>>Загрузка проекта файлов из 50 занимает несколько секунд. Если делалось что-то хардкорное с типами, то может и полминуты грузить десяток файлов. Делается это один раз, дальше делается :r -- перегрузка текущего модуля -- перегружаются только измененные модули, это уже шустро.


V>>Если что-то уж совсем большое, то можно вынести в package (грузится почти мгновенно). Еще можно скомпилить некоторые файлы, если они не меняются (по сути типа локальный пакет получается, но тут есть опасности, что .o не соответствует .hs).


VD>А тебе не хотелось бы, чтобы все это делалось автоматом? Ну, чтобы в бэкграунде давно не изменяемые модули компилировались или помещались в пакет. А измененные чтобы сами перезагружались или перекомпилировались (опять же в бэкграунде)? Ну, чтобы ты тупо выполнил команду :xyz с путем к каталогу проекта и все остальное чтобы сделал REPL?


Все-таки оно не настолько много времени жрет, чтобы чего-то компилить в фоне по мере редактирования (иначе кто-нибудь уже бы прикрутил такую фишку). А если при этом показываются ошибки во время редактирования, то это просто отвлекает.

Команду с каталогом проекта я, кстати, не использую. Это emacs сам делает. Типичная последовательность действий:
1. открываем файл
2. жмем C-c C-l, происходит запуск ghci (если еще не запущен), cd до папки с описанием проекта (.cabal-файлом) и загрузка текущего открытого файла
3. в окошке ghci дергаем нужные нам ф-ии
4. правим сорцы
5. жмем C-c C-r, происходит перегрузка ранее загруженного модуля
6. если есть ошибки компиляции, то жмем C-x ` (такая же комбинация клавиш, как и при make) и попадаем на место в исходнике с ошибкой (следующий C-x ` следующая ошибка), повторяем C-c C-r, если ошибок нет, то пункт 3.

Т.е. работа строго однозадачная и по кругу: пишем, компилим, тестим. Показ ошибок во время этапа "пишем" отвлекает.
Re[11]: Жизнь без IDE
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 29.09.09 04:25
Оценка: +1
Я вспомнил еще одну фичу IDE, которая мне реально помогает.
Вот есть функции
List.fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
Enum.fold : ('a -> 'b -> 'b) -> 'b -> 'a t -> 'b
Array.fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
Map.fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
Hashtbl.fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
или например
String.nsplit : string -> string -> string list
nsplit s sep splits the string s into a list of strings which are separated by sep.

И запомнить правильный порядок аргументов (и порядок аргументов у функций-аргументов) у меня никак не получается, тут уже не раз заслуженно ругали стандартную библиотеку окамла за неконсистентность. Когда-то я писал в Scite с подсветкой синтаксиса и еще парой простых функций, и постоянно приходилось держать в браузере документацию по библиотекам и туда-сюда по ней прыгать, что отнимало кучу времени. В OcaIDE же мне достаточно набрать List.fo и я сразу вижу все варианты фолдов с описаниями,



и пока пишу аргументы вижу подсказку по типам:



Вот это мне лично здорово экономит время, и я пока плохо представляю как с этим борются люди без IDE.
Re[12]: Жизнь без IDE
От: BulatZiganshin  
Дата: 29.09.09 06:08
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>И запомнить правильный порядок аргументов (и порядок аргументов у функций-аргументов) у меня никак не получается


в хаскеле действует правило хорошего тона — выносить назад наиболее часто изменяемые аргументы. в этом плане только split у тебя неправильный, всё остальное логично

правда, есть и противоположная тенденция — ставить наиболее значащие аргументы в начало, поскольку split str ';' выглядит как-то более эстетично
Люди, я люблю вас! Будьте бдительны!!!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.