Рли, программируемая идентация - это просто ад пизды. За две недели на проблемы вызыванные случайно затесавшимися табами среди пробелов, я убил больше времени чем на неправильно расставленные фигурные скобочки и точки с запятой за год.
это называется forced indentation of code (FIOC)
>случайно затесавшимися табами среди пробелов
говноредакторопроблемы, пиши в нотепад++ в следующий раз
*на самом деле* всё решается вменяемым сочетанием синтаксиса и системы типов (в значительной степени это пересекающиеся вещи), но т.к. систему типов не завезли, то и синтаксис привести к вменяемому виду невозможно.
потому что должно быть запрещено программистам управлять пробелами и табами, это должны делать редакторы, иде, форматеры, линтеры и прочие хуинтеры
ты бы блядь еще писал в кои8р и надеялся на нормальную работу
> выполнять код, а не просто писать его от души
> 2017
ебать ты ублюдок
жс дал вам абстрактный эксперссионизм, складывай строки с числами, нет не хочу блядь, буду творить функционализм за вечно нефтяные
пидоры блядь
@anonymous >говноредакторопроблемы
ето
>нотепад++
я думал я тута один *такой* (снипеты просто охуенски (неиронично) удобны, а теперь ещё и автокомплишн завезли) // вендобоярин, пойдём вместе вирусы ловить
@anonymous Еблан что ли. Потипизируй мне тута:
```python
if cond:
a = 1
else:
b = 2
c = 3
```
Теперь ты проёбываешься с индентацией и смысл полностью меняется. И только попробуй тут спиздануть про чистые функции. Тебе любая стейт-монадка позволит подобное.
Или если у нас, допустим, if expression, то аналогично:
```coffeescript
b = 1
a = if cond
f()
else
b = g() # Variable shadowing в твоём pure FP маня-мирке, никаких сайд-эффектов
h(b)
```
@anonymous В том-то и дело, что код с пробелами ты хоть на печатной машинке можешь херачить и везде будет одинаково (при условии моноширинного шрифта, конечно). А с этими табами ты оставляешь потенциальные баги и добавляешь лишних проблем программистам.
Хотя, кому я это говорю, ты небось считаешь, что чем сложнее и компактнее написан код, тем круче. Конечно, кто его ещё будет читать, кроме мамкиного борщехлёба.
Вон в acme IDE вообще подсветку кода не завезли и у этой идеи есть здравые корни. Обычно полагаются на IDE только в плохо спроектированных языках, хорошие позволяют писать код в чём угодно, в том числе и в редакторе без наворотов.
@anonymous У большинства языков, появившихся за последние годы, в официальных code style всегда строгое предпочтение пробелам, кстати. Исключение тут разве что Go, но там похоже у авторов травмы от C.
@anonim Причём здесь вообще твой линтер, если у ОПа проблемы от *уже написанного* кода. Хуле, любой дурак может свой код нормально написать, проблема в том, что есть куча людей, который пишут ебануто и поправить это за 5 минут не выйдет. Мешанина кода и табов лишь один частный случай.
@anonim Ага, и будешь для каждой из десятков либ, в которую периодически заглядываешь, настраивать сборку, выбирая из сотен велосипедных ебанутых билд-систем JS, фиксить её целиком, т.к. иначе не примут, ждать по полгода, пока майнтейнер не соизволит смержить твой PR, и только потом можешь уже приступать к работе с либой и непосредственно реализации нужных тебе фич.
Суть в том, что от индентации проблем больше, чем пользы. Вон в раст сделали скобочки, хотя могли и питон-стайл влепить.
@anonim Пруф или eslint. code style checker это не совсем линтер.
Ты немного не понял. Твои линтеры это только примочки. Надеяться, что примочка поможет избежать ошибки - инстант фейл. То же самое, что надеяться на IDE. Поэтому сейчас решает подход спроектировать язык так, чтобы ошибиться не мог никто, как ни старайся. И раст отличный пример. Потому что подход си и плюсов (аля программер знает что он делает) показал свою полную несостоятельность в реальном мире.
@mugiseyebrows Было в javascript. И, как ни странно, сработало, чтобы там илитка не пиздела. Результат: самый популярный язык в мире. inb4: нет, он лучше пыха на порядок, потому что автор не дебил хотя бы был
@4da Хаскель устарел как пиздец и имеет минимальную нишу. Дрочащая илитка, правда, этого ещё не знает.
Я уж не говорю про невозможность писать быстрый код без ебанутого кода уровня Don Stewart и GC. Вот в Mozilla сделали практичный язык (без GC, без ленивости и императивный) и он сейчас всех порвёт.
@anonymous Ты дебил или прикидываешься? (Если ты тот дебил, который чуть выше высирал тупые ссылки из гугля на пдфки и что-то кукарекал, можешь не отвечать.)
В хаскиле не такой синтаксис у if, как у питона или кофескрипт. Был бы такой - всё было бы как на питоне и кофе и никакие типи и монадки тебе бы не помогли. Или ты не знаешь что такое state-монада и variable shadowing? (Знаю, что не знаешь, можешь не отвечать.)
Зато вот у синтаксиса do какой надо:
```haskell
main = do
let a = 1
let f = do
-- Выполняем любую функцию в контексте монады.
return a
-- А вот у этой строчки может случайно поехать индентация.
-- Докадываешься, что будет, мудачок?
return $ a + 1
f >>= print
```
Что ещё спизданёшь?
@4da Пруф или хуярь что хочешь в QuasiQuotation.
Впрочем, хаскелю уже ничего не поможет. Непрактичные языки в современном мире никому не нужны, когда есть столько новых хороших. Но для некоторых задач вроде web backend хаскель ок.
@anonymous накал дискуссии растёт, лол
>ни стейт-монадки, ни иф-ов
включаем **маневрирование**
>Выполняем любую функцию в контексте монады.
и производим *шедевр*. пали что читал чтобы *так* композировать фп-баззворды. я рли теряюсь в догадках. твиттер?
оказывается, если написать два ретурна подряд и подгадать с типами вложенных монад, то можно потом случайно обьебаться. ну пиздец, посыпаю голову пеплом теперь.
@anonymous >если написать два ретурна подряд
Дебил, это просто пример. Комментарий я для кого написал, мудак? Любая функция, выполняющаяся в контексте монады, вернёт нужный тип.
>подгадать с типами вложенных монад
Что там подгадывать, уёбок? return реализован для любой монады. Но ты, конечно же, это не знаешь.
Сука, иди нахуй отсюда из этого треда. Прилюдно обосрался и продолжает писать хуйню. Хули ты там ждёшь, недоумок? Оставь свои примитивные крючки для детей с той параши, откуда пришёл.
@anonymous staged макросы очень ограничены и не добавляют выразительности. Они нужны чтобы генерить специализации функций в рантайме статического языка.
в динамической петушне этой оптимизацией может заниматься jit.
@anonymous >это просто пример
чего пример-то? что в любом языке можно застрелиться в некотором смысле? ну охуеть теперь.
>функция, выполняющаяся в контексте монады
для тупых обьясняю: вот это вот императивное кукареканье, вот эти слова не имеют смысла.
>Что там подгадыват
нунуну, не маневрируй тут, маня.
>Прилюдно обосрался и продолжает писать хуйню.
его звали славик
>для детей с той параши, откуда пришёл.
ну так а я чем сейчас занимаюсь?
>Хули ты там ждёшь
жду ещё твоих смешных батхертов. ввиде списка языков например (сорь что приходится напоминать).
@anonymous >чего пример-то?
Пример того, что ошибка в индентации из-за смешения табов и пробелов может привести к багу и в строго типизированном языке, в том числе и в хаскиле. Перечитай ветку.
>для тупых обьясняю
И где ты объяснил? Кукарекаешь здесь только ты без единого обоснования своих слов.
>ну так а я чем сейчас занимаюсь?
Прости, но ты слишкой тупой даже для bnw. Не позорься, все посетители этого треда, даже не знающие хаскель, уже смогли убедиться в твоей полной некомпетентности.
@anonymous Смотрите, у этого анонима такой баттхёрт от собственного невежества, что он уже репостит цитаты, которые, с его точки зрения, доказывают глупость собеседника: #TZSTBB
Какой очевидный и примитивный способ самоуспокоения за счёт поливания грязью собеседника исподтишка. Иди на мамку ещё накричи.
это где эта `программируемая идентация' ?
@anonymous > говноредакторопроблемы, пиши в нотепад++ в следующий раз
использовать язык, который неюзабелен без специального редактора.
@pxqr нет, х-к
@anonymous аргументум ад чуханум
@anonymous бля, давно я такой хуйты не слышал
@anonymous это тока ебанутые с прямотоками
@anonymous
∧_∧
( ・ω・。)つ━☆・*。
⊂ ノ ・゜+.
しーJ °。+ *´¨)
.· ´¸.·*´¨) ¸.·*¨)
(¸.·´ (¸.·'*☆ТЕПЕРЬ ТЫ jsотсос☆
в haml ебёшься тама?
@anonymous можно ли на хаскеле написать симфонию, сделать шедевр?
@mugiseyebrows а чо не сделали еще?
@anonymous в твоем хаскеле у if уебанские правила идентации, которые сбивают с толку новичков.
@pxqr ахаха, лойс.
бля добавьте еще синтаксиса плиз, плиз, потому что наш язычок не умеет макросы(((
```
Change the syntax for conditionals to
i.e., add optional semicolons before then and else, making the above example legal.
```
@anonymous макросы в нелиспах это open problem, НЯП.
Вроде в nemerle смогли выжать максимум.
@anonymous staged макросы очень ограничены и не добавляют выразительности.
Они нужны чтобы генерить специализации функций в рантайме статического языка.
в динамической петушне этой оптимизацией может заниматься jit.
@anonymous Незаметно, искажаешь исходную фразу, чтобы она стала хуйней и надеешься что никто не заметит.
@anonymous racket