Denis
то есть нужно настраивать всякие тревисы и прочие вещи?
Шта??? Там только index.html и готовые css и js
teamdale
А то он первую только ест
1я чистая, вторая нет. а задачу недопонял
Dika
Иии? 🐝
Пример "нормальной" большой чистой функции, отличной от x => x * 2, и которая полезна в реальном мире.
Denis
то есть нужно настраивать всякие тревисы и прочие вещи?
Почему бы тебе просто не отметить dist в index.html?
Максим
Шта??? Там только index.html и готовые css и js
то есть в эту созданную ветку нужно сначала положить окончательный вариант, который в папке dist?
teamdale
Denis
1я чистая, вторая нет. а задачу недопонял
Задача - это отдельно. Это сноска и к дискуссии не относится. Про бота подсветки кода
Dika
я так и написал
Ты написал "1я чистая"
Максим
Почему бы тебе просто не отметить dist в index.html?
я запутался( скажите, плз, это где-то тут? http://prntscr.com/mly770 и что значит Отметить?
Denis
Да не чистая там первая.
Да, не чистая там первая. Да не, чистая там первая. Да не чистая там - первая. ????
teamdale
1я - это непонятно что первая,а не 2я?
Игорь
Dika
1я - это непонятно что первая,а не 2я?
Ты сказал "первая чистая". Я сказал "первая не чистая". Потом ты ответил "я так и сказал".
teamdale
Нет, это прикол )))
мы люди "такие не чистые" - не поймешь где логика, где юмор. )
Denis
Да не чистая там первая. Нечистая фраза
Denis
)))
Dika
а ну тогда извините. мой ответ - ты не прав.
Так там первая мутирует объект, изменяет внешнее состояние
Vitaliy ◀️TriΔng3l▶️
Так если для одних и тех же аргументов при вызове функции несколько раз может получиться разный результат, это разве чистая функция?
Vitaliy ◀️TriΔng3l▶️
Нет, но это не единственное условие чистой функции
Необходимое, но не достаточное, так сказать
Vitaliy ◀️TriΔng3l▶️
Но да
Vitaliy ◀️TriΔng3l▶️
Чистая — это же по-хорошему такая, которая вообще constexpr может в любом случае быть
Denis
@Bannerets подпиши плиз правильно мой пример
Dika
@Bannerets подпиши плиз правильно мой пример
так что значит "правильно"? тут нельзя без сайд эффектов класс добавить
teamdale
Так там первая мутирует объект, изменяет внешнее состояние
концепция чистых функций такая - она принимает аргументы, делает что-то с ними и возвращает один и тот же результат при тех-же входных параметрах. а там ваши проблемы дальше ее не волнуют.
Dika
кроме этого у функции не должно быть сайд эффектов
Dika
и у той функции сайд эффекты есть
Максим
@Piterden Извините, плз, я очень запутался, вы не могли бы мне по пунктам просто сказать в какой файл заходить и что там править?
Dika
В чем отличие этих функций?
А, ну что первая функция принимает el аргументом, а вторая использует el из клозури, это подобно DI.
teamdale
Ведь ты не станешь утверждать что они идентичны?
я в шоке! люди не обращают внимания на сайд-эффекты. Этого что не видно? или вы настолько привыкли писать так, что не понимаете?
Denis
@Piterden Извините, плз, я очень запутался, вы не могли бы мне по пунктам просто сказать в какой файл заходить и что там править?
В том бранче который у тебя включен в настройках, в файле index.html подключи скрипты из dist.
Dika
Какую мне писать?
Ни одну, замени вызов функции на el.classList.add(className). Ну вообще, так просто по коду функции не скажешь, зависит в целом от приложения. Первая должна увеличить показатель composability.
teamdale
Я не понимаю шутишь ты или нет
я в смысле простом(хотя шучу) функция когда обрабатывает только свои входные параметры - по ФП - чистая, иначе - нет. в чем непонимание коллег?
Denis
А если цель написания функции - это сайд эффекты?
teamdale
А если цель написания функции - это сайд эффекты?
так пиши. это твой пример про изменения класса?
Игорь
А если цель написания функции - это сайд эффекты?
Стэковерфлоу и реддит согласны в том, что есть много действий, которые невозможно написать без сайд эффектов и это нормально. Работа с DOM, IO, запросы
bogdan
ребят а как через js или d3 можно получить псевдоелементы before и after
teamdale
Стэковерфлоу и реддит согласны в том, что есть много действий, которые невозможно написать без сайд эффектов и это нормально. Работа с DOM, IO, запросы
тю. понятно, я и писал выше... вы только должны переносить нечистые функции "как-бы" выше, а они уже "кидают" данные для чистых функций.
Denis
Нагугли
bogdan
Они - это свойства объекта document
та ладно мне тут уже говорят что лутше лишний класс дописать
bogdan
Они - это свойства объекта document
и сделать без псевдоелементов
Denis
Ваще да
Denis
У меня был пен
bogdan
пен ето код на codepen,
bogdan
?
Denis
https://codepen.io/denis_efremov/pen/aVmqML
Dika
function addClass (el, className) { el.classList.add(className) return el } это чистая функция ^ function addClass (className) { el.classList.add(className) } Это грязная ^
В целом, можно сказать, что вторая "более грязная", чем первая, но технически обе грязные
teamdale
В целом, можно сказать, что вторая "более грязная", чем первая, но технически обе грязные
давай про первую. function addClass (el, className) { el.classList.add(className) return el } в чем она не чистая
teamdale
?
Максим
@Piterden смотрите, у меня вот этот файл http://prntscr.com/mlygwz (index.html) пушится на гитхаб в качестве страницы, которая предлагается в настройках: https://psywalker.github.io/learning-webpack/. Как видите, она пустая (а должна быть не пустая, а такая же, как в итоговой папке dist при сборке), причём скрипт из dist в неё подключается. Как сделать, чтобы она совпадала с index.html из папки dist?
teamdale
изменяет el, это приводит к изменению внешней среды
... забей... она что принимает в качестве аргументов для "работы"?
Denis
HTML не поддерживает . и ..
Dika
Оно считается внешним, потому что к нему можно получить доступ извне. function f1 (windowVar) { windowVar.aaa = 3 } function f2 () { window.aaa = 3 } f1(window) f2() Нет никакой разницы, аргументом window или нет. Среда изменяется в любом случае. И ты не ответил на вопрос о операторе присваивания.
Dika
@RomanKovalch ^
Dika
Ощущение, что час говорю о каких-то очень базовых вещах
Denis
HTML не поддерживает . и ..
Из соображений безопасности
Denis
Ощущение, что час говорю о каких-то очень базовых вещах
Ну ты же в курсе что у меня нетрадиционная школа была ;)
Denis
HTML не поддерживает . и ..
Даже HTTP вроде не поддерживает
Denis
На уровне протокола