Бабушка, смотри, я сделал двач! Войти !bnw Сегодня Клубы
#AG96PD / @tempest / 186 дней назад

> 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 / 186 дней назад
> It is a logical impossibility to make a language more powerful by omitting features, no matter how bad they may be.
#AG96PD/M6L / @tempest / 186 дней назад
> One cannot write a program that is particularly lacking in assignment statements, or particularly referentially transparent.
#AG96PD/0ZA / @tempest / 186 дней назад
> 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 / 186 дней назад
Слушай, а тебя случайно не Григорием звать?
#AG96PD/W40 / @anonymous / 186 дней назад
```haskell map f = foldr ((:).f) [] ``` неплохо
#AG96PD/YCE / @tempest / 186 дней назад
> 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 / 186 дней назад
> 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 / 186 дней назад
> 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 / 186 дней назад
> [Lazy evaluation] allows termination conditions to be separated from loop bodies — a powerful modularization.
#AG96PD/BIU / @tempest / 186 дней назад
ет ты кокспект делаеш? )))
#AG96PD/40G / @anonymous / 186 дней назад
ех, как молоды мы были...
#AG96PD/LUX / @anonymous / 185 дней назад
@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 / 182 дня назад
@l29ah Гринтреды возвращают в виде async
#AG96PD/CY1 / @o01eg --> #AG96PD/H0J / 182 дня назад
@l29ah > что картонный хаскелист взял хуйню в описании которой английским по белому написано что она даёт непредсказуемые результаты в мультитредовом контексте Разбудите, когда хаскель станет выдавать ошибку компиляции на использование !Sync в многопотоке
#AG96PD/31G / @o01eg --> #AG96PD/H0J / 182 дня назад
@o01eg Разбудите, когда раст станет выдавать ошибку компиляции на грязные операции в STM.
#AG96PD/ONK / @l29ah --> #AG96PD/31G / 182 дня назад
@o01eg https://github.com/rust-lang/rust/issues/50547 пролистал, так и не понял будет оно использовать epoll для I/O, или для того чтобы "гринтреды" работали c I/O, им нужно будет выделить по одному осёвому треду на каждый I/O "гринтред".
#AG96PD/1K6 / @l29ah --> #AG96PD/CY1 / 182 дня назад
@l29ah Ты можешь написать исполнитель для работы с epoll. Вроде как такой уже есть в mio
#AG96PD/DGE / @o01eg --> #AG96PD/1K6 / 182 дня назад
@o01eg > [no longer maintained] Scalable, coroutine-based, fibers/green-threads for Rust. (aka MIO COroutines). Ясно.
#AG96PD/MZQ / @l29ah --> #AG96PD/DGE / 182 дня назад
@l29ah Напиши в tokio баг, у них всё поверх него работает
#AG96PD/GCG / @o01eg --> #AG96PD/MZQ / 182 дня назад
@l29ah Ты нашёл не тот mio https://crates.io/crates/mio
#AG96PD/PAK / @o01eg --> #AG96PD/MZQ / 182 дня назад
@o01eg Тот, проскролль по своему линку ниже и жомай на хуйню с надписью COroutines.
#AG96PD/M2G / @l29ah --> #AG96PD/PAK / 182 дня назад
@l29ah Зачем тебе играть в переключение в контекст, когда можно просто написать футуру?
#AG96PD/EQS / @o01eg --> #AG96PD/M2G / 182 дня назад
@o01eg Как и когда будет исполняться I/O в ФУТУРЕ?
#AG96PD/U7J / @l29ah --> #AG96PD/EQS / 182 дня назад
@l29ah Какой Waker и Executor напишешь, так и будет.
#AG96PD/JGT / @o01eg --> #AG96PD/U7J / 182 дня назад
@o01eg Я могу синхронизировать несколько ФУТУР между собой, юзать STM там?
#AG96PD/83T / @l29ah --> #AG96PD/EQS / 182 дня назад
@o01eg То есть никак, я понял.
#AG96PD/U36 / @l29ah --> #AG96PD/JGT / 182 дня назад
@l29ah Напиши их поверх epoll, хотя в mio оно уже написано.
#AG96PD/HRU / @o01eg --> #AG96PD/U36 / 182 дня назад
@o01eg Почему-то все попытки написать на которые ссылаются из mio сломаны или брошены.
#AG96PD/NXX / @l29ah --> #AG96PD/HRU / 182 дня назад
@l29ah Хотя, кажется tokio жив и делает то что нужно.
#AG96PD/GXL / @l29ah --> #AG96PD/NXX / 182 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

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