Size: a a a

2020 June 10

SP

Stanislav Popov in rust_offtopic
но это обратная сторона уверенности
источник

DS

Doge Shibu in rust_offtopic
Stanislav Popov
я пока правда не знаю нахуй вам хкт
Пример, есть трейт, который указан ниже, я хочу чтобы дженерик параметр явно зависел от того 'a, который указан в методе трейта, но при этом не протекал в сигнатуру самого трейта.

С ХКТ запросто:

trait MyFilter<Item<...>> {
 fn do_something<'a>(&'a self, item: Item<'a>) -> FilterResult
}


Без ХКТ тупо пойдёшь нафиг или придется городить хаки
источник

G

Gymmasssorla in rust_offtopic
Soul
она выглядит хуже чем хаскель
> C#, Rust, TS, Java, C++, ...
> Haskell
источник

SP

Stanislav Popov in rust_offtopic
Gymmasssorla
> C#, Rust, TS, Java, C++, ...
> Haskell
топ
источник

S

Soul in rust_offtopic
в хаскеле проблема в определении порядка выполнения программы, сделанной из плотного множества функций (6-10 строк по 3-7 функций в каждой), объединенных хитромудрыми операторами, состоящими из от одного до трех небуквенных символов, о значении которых невозможно догадаться без... Не знаю без чего, я не догадался
источник

S

Soul in rust_offtopic
а я & и && не могу запомнить, что для чего
источник

DS

Doge Shibu in rust_offtopic
Soul
в хаскеле проблема в определении порядка выполнения программы, сделанной из плотного множества функций (6-10 строк по 3-7 функций в каждой), объединенных хитромудрыми операторами, состоящими из от одного до трех небуквенных символов, о значении которых невозможно догадаться без... Не знаю без чего, я не догадался
По типам. Обычно тип оператора описывает практически всё, что о нём надо знать
источник

S

Soul in rust_offtopic
и где я должен искать определения этих операторов с их типами-то?
источник

DS

Doge Shibu in rust_offtopic
Soul
и где я должен искать определения этих операторов с их типами-то?
IDE, hoogle, GHCI
источник

DS

Doge Shibu in rust_offtopic
:t (>>=)
источник

S

Soul in rust_offtopic
но и сами типы тоже часто представляют такое заклинание, что хочется язык, в котором сигнатуры типов будут на том же языке, на котором пишут выводы хеллоувоплдов и сортировку массивов
источник

S

Soul in rust_offtopic
А то непонятность сишных макросов просто перетекла в непонятность типов, а жить проще не стало
источник

DS

Doge Shibu in rust_offtopic
Soul
А то непонятность сишных макросов просто перетекла в непонятность типов, а жить проще не стало
Что непонятно в сигнатуре типа:
(:) :: a -> [a] -> [a]
(<>) :: Semigroup a => a -> a -> a
(>>=) :: Monad m => m a -> (a -> m b) -> m b
источник

DS

Doge Shibu in rust_offtopic
Т.е. читать сигнатуры - это базовый хаскель же
источник

SP

Stanislav Popov in rust_offtopic
(:) :: a -> [a] -> [a]
кладем хуйню и список хуйни получаем список хуйни. что он делает с ними - хуй знает
источник

G

Gymmasssorla in rust_offtopic
Stanislav Popov
(:) :: a -> [a] -> [a]
кладем хуйню и список хуйни получаем список хуйни. что он делает с ними - хуй знает
Другое дело Idris
источник

S

Soul in rust_offtopic
и еще неизвестно, это функция принимает а и возвращает функцию, которая принимает [a] и возвращает функцию, которая возвращает [a] или же ее предназначено понимать как функцию с двумя аргументами
источник

S

Soul in rust_offtopic
И это только первая строчка
источник

SP

Stanislav Popov in rust_offtopic
(<>) :: Semigroup a => a -> a -> a
ничем не отличается от жавовского yoba(int int int):int
источник

DS

Doge Shibu in rust_offtopic
Stanislav Popov
(:) :: a -> [a] -> [a]
кладем хуйню и список хуйни получаем список хуйни. что он делает с ними - хуй знает
Ну мы достаточно много свойств уже можем отсюда вывести.

Например, мы по сигнатуре знаем, что выходной список как минимум будет содержать подмножество элементов из входного списка и дополнительного элемента
источник