@typescript_ru

Страница 638 из 669
Александр
09.06.2018
13:48:10
Но я бы использовал type Events = “resize” | "move"
Идеальный вариант, интелисенс сразу в параметрах функции возможные значения показывает. Спасибо!

Artur
09.06.2018
13:48:15
Не ну есть мнение, что throw это такой goto

Google
Алексей
09.06.2018
13:50:11
Не ну есть мнение, что throw это такой goto
Ну вообще то нет. Потому что goto (который кстати в Go имеется) прыгает куда угодно, а throw выбрасывает исключение вверх по стеку, то есть в одном направлении фактически. И вообще Go кстати и не смог полностью избавится от такого механизма и сделал panic/recover.

Тимофей
09.06.2018
13:50:21
Идеальный вариант, интелисенс сразу в параметрах функции возможные значения показывает. Спасибо!
Не совсем идеальный иногда придется писать штуки типо "resize" as Event, потому что тупескрипт )

Aleh
09.06.2018
13:50:59
Ну как

Дмитрий
09.06.2018
13:51:48
Да вообще никому ничего не обязаны

Aleh
09.06.2018
13:52:20
Очевидно можно сделать реализацию, которая нарушит определение

Aleh
09.06.2018
13:52:41
Только зачем тогда это называть either/maybe

Дмитрий
09.06.2018
13:52:45
Монадой можешь ты не быть, но моноидом в категории эндофункторов быть обязан

Aleh
09.06.2018
13:52:45
Дмитрий
09.06.2018
13:53:12
type Nothing = null type Maybe<A> = [A, Nothing | void] declare function foo(): Maybe<number> const [value, err] if (err === null)

Хоть в лоб хоть по лбу

Google
Алексей
09.06.2018
13:54:05
Монады
data Maybe a = Nothing | Just a - где тут что-то связанное с монадами?

Дмитрий
09.06.2018
13:54:22
Чтобы объяснить гоферу чем это будет отличаться от maybe нужно затратить бесконечное количество энергии

Алексей
09.06.2018
13:56:31
лол, в Go примерно так и происходит

Aleh
09.06.2018
13:57:23
data Maybe a = Nothing | Just a - где тут что-то связанное с монадами?
В композиции, которую ты можешь определить)

Александр
09.06.2018
13:57:36
Не совсем вопрос по тайпскрипту но всё же, как из массива функций удалить елемент по значению?

Дмитрий
09.06.2018
13:57:56
А если прям удалить, то найти индекс через findIndex

И дальше splice

Александр
09.06.2018
13:59:42
Окей, подходит, спасибо

Алексей
09.06.2018
14:00:32
В композиции, которую ты можешь определить)
Я могу эту "композицию" (которая фактически не будет композицией) зашить в язык и тогда монад в чистом виде в языке не будет, а Maybe очень даже будет.

Дмитрий
09.06.2018
14:00:59
Что ещё себе в язык зашьёшь?)

Дмитрий
09.06.2018
14:01:26
?

Алексей
09.06.2018
14:03:52
Я тебя не понимаю (
В голанге обработка ошибок всегда требует if err != nil { return err } или что-то подобного, хотя можно определить какой-нибудь короткий синтаксический сахарок, который бы автоматически делал проверку и возврат ошибки. Что-то на подобие этого и происходит в том же хаскеле с тем же Either, только там это делается через монады.

Александр
09.06.2018
14:04:08
Приватные функции в typescript "принято" обозначать нижним подчеркиванием?

Алексей
09.06.2018
14:04:45
Aleh
09.06.2018
14:05:12
Т.е. const findUserEmail = id => findUser(id).bind(user => user.email)

Проверка спрятана в bind

Google
LiberateAI
09.06.2018
14:06:08
Приватные функции в typescript "принято" обозначать нижним подчеркиванием?
На мой взгляд - нет Линтерам обычно подчеркивание не нравится

Дмитрий
09.06.2018
14:06:23
Дожили

Дмитрий
09.06.2018
14:06:37
Двух видов приватных полей вам уже мало?)

Aleh
09.06.2018
14:06:43
)))

Алексей
09.06.2018
14:06:55
Т.е. const findUserEmail = id => findUser(id).bind(user => user.email)
нууу нет, такое в Go точно не приживётся

Aleh
09.06.2018
14:07:07
Алексей
09.06.2018
14:07:56
гипотетически там можно в ядро языка вшить обобщённый тип/псевдофункцию

Aleh
09.06.2018
14:07:59
нууу нет, такое в Go точно не приживётся
Но тут у нас функтор(или даже монада). Хотя об этом нигде не написано.

LiberateAI
09.06.2018
14:08:03
# вроде еще нет в тс
Думаю он про private/protected

Алексей
09.06.2018
14:08:50
гипотетически там можно в ядро языка вшить обобщённый тип/псевдофункцию
что собственно и сделано для массивов, слайсов, мапов и make, append

Но тут у нас функтор(или даже монада). Хотя об этом нигде не написано.
И зачем все эти штуки нужны в языке, который не придерживается функциональной парадигмы? И насколько уродливо в таких языка будут выглядить подобные конструкции?

Aleh
09.06.2018
14:10:23
Эти штуки не про функциональную парадигму, тут все очень императивненько, жс же

Вместо стрелок можно в каких-нибудь жавах или симулах делать объекты с методом run или call

Алексей
09.06.2018
14:12:29
Зачем нужен го я не знаю
А зря. Как бы я не ругал Go, но это пока пожалуй единственный более-менее популярный язык с нормальными высокоуровневыми примитивами для работы с конкурентными и парраллельными вычислениями.

Эти штуки не про функциональную парадигму, тут все очень императивненько, жс же
Да нет, как раз монады с функторами - это фичи чисто из мира ФП.

Дмитрий
09.06.2018
14:13:03
Не то что ваш ерланг поганый

Google
Max
09.06.2018
14:13:05
Как вам такое предложение? https://github.com/Microsoft/TypeScript/issues/24828

Алексей
09.06.2018
14:13:28
Не то что ваш ерланг поганый
Ну я не просто так слово "популярный" упомянул.

Дмитрий
09.06.2018
14:13:42
А я не просто так слово "ерланг"

Алексей
09.06.2018
14:14:05
ну эрланг как-то не популярный особо

Aleh
09.06.2018
14:14:14
Да нет, как раз монады с функторами - это фичи чисто из мира ФП.
Не, там они конечно супер популярны и можно сказать, что их заслуга привнесение всего этого добра в мир разработки. Но штуки супер удачные и можно юзать везде, где у вас есть хоть чуть-чуть полиморфизма

Max
09.06.2018
14:16:03
В JS это уже в Stage 1 включено

Алексей
09.06.2018
14:16:04
Нет
На java без лямбд реализуйте мне монаду пожалуйста, а я посмотрю насколько уродливо это получится.

Aleh
09.06.2018
14:16:40
На java без лямбд реализуйте мне монаду пожалуйста, а я посмотрю насколько уродливо это получится.
Да обычный объект с методом bind, принимает на вход объект с методом call

Алексей
09.06.2018
14:17:30
Aleh
09.06.2018
14:17:43
Да в смысле, в коллекциях map юзал?

Поздравляю, у вас функтор

Дмитрий
09.06.2018
14:18:17
Возможно фпянка

Алексей
09.06.2018
14:18:20
map - это уже из мира ФП

Дмитрий
09.06.2018
14:18:21
По каретам

Aleh
09.06.2018
14:18:40
map - это уже из мира ФП
Да что ж это за мир такой и почему мы все еще не там?)))

Google
Алексей
09.06.2018
14:19:07
Да что ж это за мир такой и почему мы все еще не там?)))
А мы там уже (для большинства языков), только частично

Aleh
09.06.2018
14:19:27
Ладно, я перестал понимать о чем мы спорим)

Дмитрий
09.06.2018
14:19:40
18 века

Aleh
09.06.2018
14:19:50
Жава тоже

Дмитрий
09.06.2018
14:19:54
До н.э

Aleh
09.06.2018
14:20:23
Жава тоже
Ну ладно, там gc есть, так что начала 70ых

Max
09.06.2018
14:20:34
Декораторы до сих пор под Stage 2 но они уже давно доступны (правда под флагом)

Aleh
09.06.2018
14:21:08
Да, там похожие на stage1

Страница 638 из 669