Тут не исправить уже ничего, Господь, жги! Войти !bnw Сегодня Клубы
#AG96PD / @tempest / 1900 дней назад

> The functional programmer sounds rather like a mediæval monk, denying himself the pleasures of life in the hope that it will make him virtuous.
#AG96PD/OVA / @tempest / 1900 дней назад
> It is a logical impossibility to make a language more powerful by omitting features, no matter how bad they may be.
#AG96PD/M6L / @tempest / 1900 дней назад
> One cannot write a program that is particularly lacking in assignment statements, or particularly referentially transparent.
#AG96PD/0ZA / @tempest / 1900 дней назад
> When writing a modular program to solve a problem, one first divides the problem into subproblems, then solves the subproblems, and finally combines the solutions. The ways in which one can divide up the original problem depend directly on the ways in which one can glue solutions together. Therefore, to increase one’s ability to modularize a problem conceptually, one must provide new kinds of glue in the programming language.
#AG96PD/N1M / @tempest / 1900 дней назад
Слушай, а тебя случайно не Григорием звать?
#AG96PD/W40 / @anonymous / 1900 дней назад
```haskell map f = foldr ((:).f) [] ``` неплохо
#AG96PD/YCE / @tempest / 1900 дней назад
> Whenever a new datatype is defined, higher-order functions should be written for processing it. This makes manipulating the datatype easy, and it also localizes knowledge about the details of its repre- sentation. The best analogy with conventional programming is with extensible languages — in effect, the programming language can be extended with new control structures whenever desired.
#AG96PD/OL9 / @tempest / 1900 дней назад
> Since this method of evaluation runs f as little as possible, it is called “lazy evaluation”. It makes it practical to modularize a program as a generator that constructs a large number of possible answers, and a selector that chooses the appropriate one.
#AG96PD/2GV / @tempest / 1900 дней назад
> We have described lazy evaluation in the context of functional languages, but surely so useful a feature should be added to nonfunctional languages — or should it? Can lazy evaluation and side-effects coexist? Unfortunately, they cannot: Adding lazy evaluation to an imperative notation is not actually impos- sible, but the combination would make the programmer’s life harder, rather than easier. Because lazy evaluation’s power depends on the programmer giving up any direct control over the order in which the parts of a program are executed, it would make programming with side effects rather difficult, because predicting in what order —or even whether— they might take place would require knowing a lot about the context in which they are embedded. Such global interdepen- dence would defeat the very modularity that —in functional languages— lazy evaluation is designed to enhance.
#AG96PD/WED / @tempest / 1900 дней назад
> [Lazy evaluation] allows termination conditions to be separated from loop bodies — a powerful modularization.
#AG96PD/BIU / @tempest / 1900 дней назад
ет ты кокспект делаеш? )))
#AG96PD/40G / @anonymous / 1900 дней назад
ех, как молоды мы были...
#AG96PD/LUX / @anonymous / 1899 дней назад
@o01eg Жми лайк если раст безопаснее потому что картонный хаскелист взял хуйню в описании которой английским по белому написано что она даёт непредсказуемые результаты в мультитредовом контексте (https://hackage.haskell.org/package/base-4.12.0.0/docs/Data-IORef.html#g:2), и заюзал в мультитредовом контексте, а растоёб успел четырежды охуеть от вербозности и лайфтаймов, а в будущем ещё охуеет от того что гринтреды выкинули на мороз (https://stackoverflow.com/a/29791242/4095104), а местная реализация STM не даёт ожидаемой от ней безопасности (https://github.com/Marthog/rust-stm#usage) из-за убогой системы типов.
#AG96PD/H0J / @l29ah --> #AG96PD/K4I / 1896 дней назад
@l29ah Гринтреды возвращают в виде async
#AG96PD/CY1 / @o01eg --> #AG96PD/H0J / 1896 дней назад
@l29ah > что картонный хаскелист взял хуйню в описании которой английским по белому написано что она даёт непредсказуемые результаты в мультитредовом контексте Разбудите, когда хаскель станет выдавать ошибку компиляции на использование !Sync в многопотоке
#AG96PD/31G / @o01eg --> #AG96PD/H0J / 1896 дней назад
@o01eg Разбудите, когда раст станет выдавать ошибку компиляции на грязные операции в STM.
#AG96PD/ONK / @l29ah --> #AG96PD/31G / 1896 дней назад
@o01eg https://github.com/rust-lang/rust/issues/50547 пролистал, так и не понял будет оно использовать epoll для I/O, или для того чтобы "гринтреды" работали c I/O, им нужно будет выделить по одному осёвому треду на каждый I/O "гринтред".
#AG96PD/1K6 / @l29ah --> #AG96PD/CY1 / 1896 дней назад
@l29ah Ты можешь написать исполнитель для работы с epoll. Вроде как такой уже есть в mio
#AG96PD/DGE / @o01eg --> #AG96PD/1K6 / 1896 дней назад
@o01eg > [no longer maintained] Scalable, coroutine-based, fibers/green-threads for Rust. (aka MIO COroutines). Ясно.
#AG96PD/MZQ / @l29ah --> #AG96PD/DGE / 1896 дней назад
@l29ah Напиши в tokio баг, у них всё поверх него работает
#AG96PD/GCG / @o01eg --> #AG96PD/MZQ / 1896 дней назад
@l29ah Ты нашёл не тот mio https://crates.io/crates/mio
#AG96PD/PAK / @o01eg --> #AG96PD/MZQ / 1896 дней назад
@o01eg Тот, проскролль по своему линку ниже и жомай на хуйню с надписью COroutines.
#AG96PD/M2G / @l29ah --> #AG96PD/PAK / 1896 дней назад
@l29ah Зачем тебе играть в переключение в контекст, когда можно просто написать футуру?
#AG96PD/EQS / @o01eg --> #AG96PD/M2G / 1896 дней назад
@o01eg Как и когда будет исполняться I/O в ФУТУРЕ?
#AG96PD/U7J / @l29ah --> #AG96PD/EQS / 1896 дней назад
@l29ah Какой Waker и Executor напишешь, так и будет.
#AG96PD/JGT / @o01eg --> #AG96PD/U7J / 1896 дней назад
@o01eg Я могу синхронизировать несколько ФУТУР между собой, юзать STM там?
#AG96PD/83T / @l29ah --> #AG96PD/EQS / 1896 дней назад
@o01eg То есть никак, я понял.
#AG96PD/U36 / @l29ah --> #AG96PD/JGT / 1896 дней назад
@l29ah Напиши их поверх epoll, хотя в mio оно уже написано.
#AG96PD/HRU / @o01eg --> #AG96PD/U36 / 1896 дней назад
@o01eg Почему-то все попытки написать на которые ссылаются из mio сломаны или брошены.
#AG96PD/NXX / @l29ah --> #AG96PD/HRU / 1896 дней назад
@l29ah Хотя, кажется tokio жив и делает то что нужно.
#AG96PD/GXL / @l29ah --> #AG96PD/NXX / 1896 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.