All Projects → schlichtanders → Continuables.jl

schlichtanders / Continuables.jl

Licence: MIT license
Extremely fast generator-like alternative to Julia Channels

Programming Languages

julia
2034 projects

Projects that are alternatives of or similar to Continuables.jl

Crank
Write JSX-driven components with functions, promises and generators.
Stars: ✭ 2,487 (+7436.36%)
Mutual labels:  generators
delphi
💥 Earn Rewards for Saving and Liquidity Provision (work in progress)
Stars: ✭ 19 (-42.42%)
Mutual labels:  yield
teedoc
wiki and multi docs friendly static document site generator(doc generator), convert markdown and jupyter notebook to html website. wiki 和多文档友好的静态文档网站生成工具
Stars: ✭ 72 (+118.18%)
Mutual labels:  generators
Laravel Admin Starter
A Laravel Admin Starter project with Page Builder, Roles, Impersonation, Analytics, Blog, News, Banners, FAQ, Testimonials and more
Stars: ✭ 240 (+627.27%)
Mutual labels:  generators
gsc
embeddable (game) scripting language in C
Stars: ✭ 25 (-24.24%)
Mutual labels:  yield
Zanphp
PHP开发面向C10K+的高并发SOA服务 和RPC服务首选框架
Stars: ✭ 1,451 (+4296.97%)
Mutual labels:  yield
Sinergia
⚒️ Cooperative expensive tasks at 60fps via ES6 generators
Stars: ✭ 163 (+393.94%)
Mutual labels:  generators
titan-starter-website
A Laravel Website and Admin starter project that helps you with the setup.
Stars: ✭ 51 (+54.55%)
Mutual labels:  generators
haxe-yield
Cross platform C#-like `yield` generator for Haxe
Stars: ✭ 32 (-3.03%)
Mutual labels:  yield
redux-saga-callback
redux-saga helper functions to await dispatched actions
Stars: ✭ 19 (-42.42%)
Mutual labels:  yield
React Coroutine
Make your async components compact and descriptive by leveraging the power of the language features
Stars: ✭ 246 (+645.45%)
Mutual labels:  generators
nj
NJ is a simple script engine in golang with Lua-like syntax.
Stars: ✭ 19 (-42.42%)
Mutual labels:  yield
LuaCSP
Communicating Sequential Processes in Lua
Stars: ✭ 40 (+21.21%)
Mutual labels:  yield
Taskr
A fast, concurrency-focused task automation tool.
Stars: ✭ 2,421 (+7236.36%)
Mutual labels:  generators
porn-description-generator
Generates new porn descriptions based on an edited dataset of xhamster video descriptions uploaded between 2007-2016.
Stars: ✭ 40 (+21.21%)
Mutual labels:  generators
Diagon
Interactive ASCII art diagram generators. 🌟
Stars: ✭ 189 (+472.73%)
Mutual labels:  generators
farm-army-backend
Track your farming and pool performance on the Binance Smart Chain, Polygon, Fantom, KuCoin Community Chain, Harmony, Celo - https://farm.army - nodejs backend
Stars: ✭ 86 (+160.61%)
Mutual labels:  yield
php-coroutine
A lightweight library to implement coroutine by yield & Generator.
Stars: ✭ 27 (-18.18%)
Mutual labels:  yield
jducers
A js transducers-like implementation using ES9
Stars: ✭ 25 (-24.24%)
Mutual labels:  generators
yupi
Python package designed for collecting and processing trajectory data.
Stars: ✭ 30 (-9.09%)
Mutual labels:  generators

Continuables

Stable Dev Build Status Coverage

TLDR: Python / C# yield with performance matching plain Julia iterators (i.e. unbelievably fast)

Continuables are generator-like higher-order functions which take a continuation as an extra argument. The key macro provided by the package is @cont which will give access to the special function cont within its scope and wraps the computation in a special Type Continuables.Continuable. It is best to think of cont in the sense of yield from Python's Generators. It generates values and takes feedback from the outer process as return value.

If you come from Python, use Continuables wherever you would use generators. If you are Julia-native, Continuables can be used instead of Julia's Channels in many place with drastic performance-improvements (really drastic: in the little benchmark example below it is 20 million times faster!).

This package implements all standard functions like e.g. collect, reduce, any and others. As well as functionalities known from Base.Iterators and IterTools.jl like take, dropwhile, groupby, partition, nth and others.

For convenience, all methods also work for plain iterables.

Installation

Install like

using Pkg
pkg"add Continuables"

Use it like

using Continuables

For further information take a look at the documentation.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].