@haskellru

Страница 1235 из 1551
Yuriy
31.05.2018
20:56:15
в хаскеле тип для внутренностей одной функции как-то чуждо смотрится

Google
kana
31.05.2018
20:57:12
можно просто линзы _1/_2/_3 проименовать в говорящие имена f :: State (Int, Int, Int) () f = do a += 1 b *= 2 c -= 3 where (a, b, c) = (_1, _2, _3)

Ilya
31.05.2018
20:58:38
Yuriy
31.05.2018
20:59:31
по крайней мере один из них врёт

Alexander
31.05.2018
21:00:27
про то, что в Haskell в отличии от rust есть GC уже написали?

а то лень читать выше

A64m
31.05.2018
21:01:00
плюсы хаскеля: есть гц

Alexander
31.05.2018
21:01:12
а ну хорошо

Антон
31.05.2018
21:01:15
> Rust как вполне хорошая замена C/C++. Учу его сейчас. > Bio: Rust Core Team
никакой Язык Программирования нельзя выучить полностью, если ты, конечно, не забился на нем и только нем, но тогда ты и сам изменишься.

про то, что в Haskell в отличии от rust есть GC уже написали?
Зачем в языках системного уровня GC?

Alexander
31.05.2018
21:01:55
или микроконтроллеры?

Google
A64m
31.05.2018
21:02:17
зачем языки "системного уровня" в 99.98% задач?

Антон
31.05.2018
21:02:21
ядро пилишь?
А на C только только ядра и микроконтроллеры пилить?

Alexander
31.05.2018
21:02:32
я бы сказал в 1995+

Yuriy
31.05.2018
21:03:00
1995—2017

теперь же есть Раст

Alexander
31.05.2018
21:03:58
пока в компилятор раста не вольют сравнительное число человеколет это под вопросом

хотя по мне Раст гораздо приятнее

Антон
31.05.2018
21:04:28
в 2018 - да
Посмотри на Telegram. Он такой плавный, а почему? Потому что многие медленные задачи отрабатываются именно на C.

Yuriy
31.05.2018
21:05:11
мы на С много пишем — файловые системы, драйверы. ну то есть опять ядро. да

Alexander
31.05.2018
21:05:29
хм.. очень странное утверждение про телеграм

у нас тоже на сях файловые системы распределенные си и Haskell

Alexander
31.05.2018
21:06:34
ну приложение в котором общение по сети, чутка криптографии и GUI на 2.5 элемента

у меня Google spreadsheet работает на сравнимой скорости в браузере

а он на js

Антон
31.05.2018
21:07:10
но ведь на ассемблере было бы ещё быстрее! почему телеграм не на ассемблере?
Сложно поддерживать. Да и зачем усложнять, если пользователю и так все быстро на C?

Alexander
31.05.2018
21:07:15
и элементов там в разы больше

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

Google
Yuriy
31.05.2018
21:08:36
в общем Haskell разумный язык прикладного уровня, а для системного код удобно генерить
ну не то чтобы очень удобно. лучше, чем CPP, конечно. но отлаживать сишный код всё равно приходится по-сишному

Alexander
31.05.2018
21:10:44
там хотя бы gdb есть

хотя граница веселой может быть

особенно если с одной стороны хаскель, а с другой си, в кернел треде

Антон
31.05.2018
21:23:51
а си легко что ли?
Хорошего Си-разработчика легче найти, чем assembly кодера

A64m
31.05.2018
21:24:46
да, но тяжелее, чем разработчика на нормальном языке

Anatolii
31.05.2018
21:28:51
хм, что-то у меня аесон сломался

есть тест - парсит файлик, проверяет с expected все работает отлично

хотя, кажется я понял

наверное я что-то в ToJSON которые руками писал поломал

Если убираю вот такой инстанс и дерайвлю ToJSON, то все ок Но вот если сделать такой инстанс то начинается беда какая-то, подвисает на encode, просто выжирает 1 ядро и висит toObject :: ToJSON a => a -> Object toObject a = case toJSON a of Object o -> o _ -> error "toObject: value isn't an Object" instance ToJSON X where toJSON x = Object $ toObject x

это я сократил до минимально воспроизводимого кейса

мне нужен toObject чтобы потом добавить поля дополнительные

я уже спать пойду - но если кто подкинет идею куда копать - буду очень благодарен

самое простое решение - это конечно сделать еще одну стрктуру которая будет с доп полями и там их заполнить

но хотелось бы понять что в этому случае пошло не так

Антон
31.05.2018
21:54:14
Alexander
31.05.2018
21:56:17
ты ж toJson вызываешь бесконечно

Google
Alexander
31.05.2018
21:56:37
toJson вызывает toObject который вызывает toJson

в общем-то объект из-за ленивости оно сразу сделает, но если попробуешь его заматчить или значение достать, то будет печалька

Maxim
31.05.2018
21:57:55
Ночные вопросы. Представим, что у меня есть список xs. Я могу делать xs ^? ix 5. А могу filter f xs ^? xs Как мне правильно сделать что-то типа xs ^? filtered f . ix 5 ? Вопрос скорее чисто из любопытства

Anatolii
31.05.2018
21:59:46
ты ж toJson вызываешь бесконечно
Спасибо, точно пора спать идти, незнаю чем я думал когда писал это. Это мне чтобы доьавит полей надо делать обёртку? Чтобы вручную все старые поля не объявлять

Где-то когда юзал такой подход с toObject, так конечно наверняка был вложенная стрвктура

Yuriy
31.05.2018
22:16:06
что-то мне затея с линзами не очень нравится уже • Couldn't match type ‘Identity’ with ‘Const Time’ Expected type: Getting Time (Chains, Map k0 a0, Time, Map Time (Set Work)) Time Actual type: (Time -> Identity Time) -> (Chains, Map k0 a0, Time, Map Time (Set Work)) -> Identity (Chains, Map k0 a0, Time, Map Time (Set Work))

просто если заменить _1 на time = _1

Pineapple
31.05.2018
22:17:08
Я б тупо 5 параметров сделал.

Yuriy
31.05.2018
22:19:56
десять раз их туда-сюда передавать... скучно

захотел сделать красиво

вот так сработало time :: Lens' _ Time time = _3

qq
01.06.2018
06:11:05
а почему в хаскеле -23 div 10 == -2?

деление вроде целочисленное...

Как же так то ребята

Я думал математика... все дела , по серъезному все...

Kirill
01.06.2018
06:21:45
потому что это - (23 div 10)

а вариантов больше чем 1, нечего тут про серьёзную математику задвигать: λ> (-23) `quot` 10 -2 λ> (-23) `div` 10 -3

qq
01.06.2018
06:25:12
-23 div 10 ==- 3 -23 % 10 == 7

Google
qq
01.06.2018
06:25:25
у нормальных людей вощет

ох лол это еще и унарные операторы имеют приоритет ниже функций

KDeveloper ??
01.06.2018
06:27:26
-23 div 10 ==- 3 -23 % 10 == 7
и почему тут 3?

ох лол это еще и унарные операторы имеют приоритет ниже функций
нормальные люди не используют птичий сленг

qq
01.06.2018
06:28:54
потому что так работает целочисленное деление на отрицательных числах

Alexander
01.06.2018
06:29:16
-23+3=20 делится на 10

qq
01.06.2018
06:30:25
проверяем 10*(-3)+7=-23

Oleg
01.06.2018
06:44:19
У тебя ведь по паре операций для каждой семантики

Иногда нужно сделать как раз с дистрибутивной инверсией, и приходится костылитт

Yuriy
01.06.2018
06:47:56
-23 div 10 ==- 3 -23 % 10 == 7
λ> (-23) `div` 10 -3 λ> (-23) `mod` 10 7 λ> :set -XNegativeLiterals λ> -23 `mod` 10 7

потому что в Хаскеле по умолчанию нет отрицательных литералов и унарных операторов

есть синтаксический сахар, превращающий - в negate, но, как видите, он не очевидно работает

qq
01.06.2018
06:50:05
ок разобрался, знач нормально все реализовано. с делением.

Yuriy
01.06.2018
06:50:41
всё как доктор прописал

div, mod, quot, rem

Timofey
01.06.2018
07:07:56
Мене, текел, фарес

Страница 1235 из 1551