Size: a a a

2020 October 25

KV

Kirill Valyavin in Haskell
Anton Harniakou
Я понял теперь. Спасибо. Мы, получается, гранулярнее можем объявлять eq
Eq1 f следует понимать как просто Eq (f a) для всех а
источник

Oℕ

Oleg ℕizhnik in Haskell
Насколько я понимаю, сейчас Eq1 должен быть депрекейчен в пользу
(forall a. Eq a => Eq (f a))
источник

KV

Kirill Valyavin in Haskell
Oleg ℕizhnik
Насколько я понимаю, сейчас Eq1 должен быть депрекейчен в пользу
(forall a. Eq a => Eq (f a))
Да
источник

Oℕ

Oleg ℕizhnik in Haskell
А вот Generic1 уже не задепрекейтишь так просто
источник

KV

Kirill Valyavin in Haskell
Ну потому что семантика другая, это не Generic (f a) для всех a
источник

Oℕ

Oleg ℕizhnik in Haskell
Да, просто в вопросе и о нём  было
источник

Oℕ

Oleg ℕizhnik in Haskell
Можно в общем, наверное, сказать, что ето то, что позволяет автоматически выводить всякие Functor и Traversable
источник

IP

Iaroslav Postovalov in Haskell
пытаюсь найти функцию, которая прогоняет предикат по коллекции и возвращает true, если предикат ни разу не вернул false.
что я делаю не так
источник

IP

Iaroslav Postovalov in Haskell
аа, вот оно
источник

MK

Maxim Koltsov in Haskell
Iaroslav Postovalov
пытаюсь найти функцию, которая прогоняет предикат по коллекции и возвращает true, если предикат ни разу не вернул false.
что я делаю не так
На тип посмотри который написал
источник

A

Andrey in Haskell
Алексей Худяков
Еще rr очень классная штука.
спасибо, посмотрим, есть ли под дарвин
источник

YS

Yan Shkurinskiy in Haskell
самый быстрый бан на диком западе
источник

MK

Maxim Koltsov in Haskell
может всё-таки бота вернём?
источник

A

Andrey in Haskell
напишем?
источник

MK

Maxim Koltsov in Haskell
зачем писать-то
источник

MK

Maxim Koltsov in Haskell
шилди норм работает имхо
источник

MK

Maxim Koltsov in Haskell
правда с недавних пор оно рекламу добавило
источник

MK

Maxim Koltsov in Haskell
но его можно селф-хостед
источник

АГ

Алексей Герасимов... in Haskell
Danil Berestov
pub extern "C" fn exec_from_haskell(raw: *const c_char) -> *const c_char {
 let source = unsafe { CStr::from_ptr(raw) };
 let a = &source.to_str().unwrap();

 ...
 let c_str: Vec<c_char> = answer.chars().map(|x| x as c_char).collect();
 let ptr = c_str.as_ptr();
 ptr
}
здесь вернется указатель на локальную переменную, которая умрет после вызова функции. чтобы выдать наружу указатель на данные, которые менеджит раст, надо разместить их в куче, взять указатель, «утечь» (Box::leak) данные, чтобы их раст не освободил по выходу из скоупа, передать указатель наружу. Чтобы потом освободить память, надо передать указатель обратно в раст, восстановить String (у него есть методы для построения из сырого указателя) и освободить. как-то так
источник

DB

Danil Berestov in Haskell
Алексей Герасимов
здесь вернется указатель на локальную переменную, которая умрет после вызова функции. чтобы выдать наружу указатель на данные, которые менеджит раст, надо разместить их в куче, взять указатель, «утечь» (Box::leak) данные, чтобы их раст не освободил по выходу из скоупа, передать указатель наружу. Чтобы потом освободить память, надо передать указатель обратно в раст, восстановить String (у него есть методы для построения из сырого указателя) и освободить. как-то так
Да, именно это я и нагуглил)
источник