Size: a a a

2021 April 03

L

Lierdakil in Haskell
[BRM]White Rabbit
await тоже ожидает значение. не давая коду идти дальше
... это мне кажется очень странный способ думать о ленивости. Во-первых, WHNF это вычисление ровно до первого конструктора или частично применённой функции. Во-вторых у всего языка нестрогая семантика. Поэтому любое вычисление потенциально "объявляет task" в этих терминах.
источник

MK

Maxim Koltsov in Haskell
Чё тут происходит
источник

MK

Maxim Koltsov in Haskell
Ерунда какая-то
источник

[

[BRM]White Rabbit in Haskell
Я просто ловлю соотношения с предыдущим опытом программирования
источник

[

[BRM]White Rabbit in Haskell
Maxim Koltsov
Чё тут происходит
я новую книгу читать начал
источник

MK

Maxim Koltsov in Haskell
Саймон?
источник

[

[BRM]White Rabbit in Haskell
Он
источник

KV

Kirill Valyavin in Haskell
[BRM]White Rabbit
у кода
var task = Task.Delay(10);
await Task.Delay(5)
await task;


поведение абсолютно аналогично к
 x <- rpar $ f a
y <- rseq $ f b
rseq x
return (x,y)
Убедитесь, что не путаете параллельность и конкурентность
источник

[

[BRM]White Rabbit in Haskell
Не путаю, но в шарпах очень редко используется параллельность на потоках, т.к. те - не самые приятные.
источник

[

[BRM]White Rabbit in Haskell
К тому же я в данный момент обсуждаю внешний интерфейс работы с параллельностью (в случае шарпов - конкурентностью), а не внутренние процессы
источник

KV

Kirill Valyavin in Haskell
Я бы ожидал, что нотация Delay и await означает именно потоки, но я не знаю шарп
источник

[

[BRM]White Rabbit in Haskell
это конкуретность в чистом виде. Система думает, выгодно ли ей выдавать потоки из пула, если невыгодно, то процесс идёт последовательно
источник

L

Lierdakil in Haskell
[BRM]White Rabbit
К тому же я в данный момент обсуждаю внешний интерфейс работы с параллельностью (в случае шарпов - конкурентностью), а не внутренние процессы
Так внешний интерфейс разный. Вычисление запущенное с rpar не надо потом делать rseq, оно само форсируется когда будет надо.
источник

[

[BRM]White Rabbit in Haskell
а
await Task.Delay просто освобождает поток на указанное количество миллисекунд
источник

[

[BRM]White Rabbit in Haskell
Lierdakil
Так внешний интерфейс разный. Вычисление запущенное с rpar не надо потом делать rseq, оно само форсируется когда будет надо.
я бы сказал, что в шарпах таску тоже надо форсировать, если не хочешь использовать await, но результат нужен, однако это улезание в тёмные дебри императивного языка, который связан с хаскелем почти никак
источник

L

Lierdakil in Haskell
[BRM]White Rabbit
я бы сказал, что в шарпах таску тоже надо форсировать, если не хочешь использовать await, но результат нужен, однако это улезание в тёмные дебри императивного языка, который связан с хаскелем почти никак
Я пожалуй не буду спорить ибо знаю шарп почти никак, но в хаскеле есть async (https://hackage.haskell.org/package/async) -- вот у него интерфейс как у этих ваших императивных async почти совсем один в один. А натягивать представления об async на parallel я бы всё же не советовал, велик шанс себя запутать.
источник

[

[BRM]White Rabbit in Haskell
ну, да, все языки чистые, просто в императивных IO включен по умолчанию, вот там и используют async🌚
источник

M

Maxim in Haskell
Кто-нибудь использовал haskell.nix и cabal.project? Я не понимаю, что такое components в команде nix-build -A helloworld.components.exec.helloword. Подскажите пожалуйста где прописывать эти components?
источник

a

adam in Haskell
Maxim
Кто-нибудь использовал haskell.nix и cabal.project? Я не понимаю, что такое components в команде nix-build -A helloworld.components.exec.helloword. Подскажите пожалуйста где прописывать эти components?
источник

AP

Aleksei (astynax) Pi... in Haskell
Большинство "вторых" книг отлично читаются параллельно. Потому что не только углубляют познания, но и расширяют
источник