
CommunityNews
Elegant and performant recursion in Rust
Elegant and performant recursion in Rust.
This is a post about writing elegant and performant recursive algorithms in Rust. It makes heavy use of a pattern from Haskell called recursion schemes, but you don’t need to know anything about that; it’s just an implementation detail. Instead, as motivation, I have benchmarks showing a 14-34% improvement over the typical boxed pointer representation of recursive data structures in Rust.
Read in full here:
This thread was posted by one of our members via one of our news source trackers.
Popular Backend topics

Our Solo v2 launch is official!.
Our Kickstarter campaign for our next generation of Solo products launches on January 26th. To > ge...
New

Typing is Hard
Type Checking and Type Inference
Common terms
Completeness
Soundness
Decidability
Hindley-Milner Type System
Dependent t...
New

Zig Roadmap 2021.
From Zig SHOWTIME #21Subscribe to the Zig SHOWTIME Newsletter!https://zig.show0:00 Intro then Language Spec w/ Martin ...
New

This comes up in my conversations surprisingly often so I thought it’s worth to write my thoughts down instead of repeating them again an...
New

Ruby vs Python comes down to the for loop.
Contrasting how each language handles iteration helps understand how to work effectively in e...
New

Ruby: How to Run a Rack app in a Background Thread.
Stubbing and mocking are fine, but sometimes you want to test full integration. This...
New

Writing a Game Boy Emulator in OCaml.
For the past few months, I have been working on a project called CAMLBOY, a Game Boy emulator that...
New

Rails is not written in Ruby.
I’m born and raised in Kraków, a beautiful city in Poland, maybe you’ve heard about it, maybe you’ve even ...
New

C++ Cheat Sheets & Infographics.
Graphics and cheat sheets, each capturing one aspect of C++: algorithms/containers/STL, language ba...
New

GitHub - WhatsApp/waraft: An Erlang implementation of RAFT from WhatsApp.
An Erlang implementation of RAFT from WhatsApp. Contribute to ...
New
Other popular topics

Reading something? Working on something? Planning something? Changing jobs even!?
If you’re up for sharing, please let us know what you’...
New

No chair. I have a standing desk.
This post was split into a dedicated thread from our thread about chairs :slight_smile:
New

There’s a whole world of custom keycaps out there that I didn’t know existed!
Check out all of our Keycaps threads here:
https://forum....
New

In case anyone else is wondering why Ruby 3 doesn’t show when you do asdf list-all ruby :man_facepalming: do this first:
asdf plugin-upd...
New

If you are experiencing Rails console using 100% CPU on your dev machine, then updating your development and test gems might fix the issu...
New

Continuing the discussion from Thinking about learning Crystal, let’s discuss - I was wondering which languages don’t GC - maybe we can c...
New

Hi folks,
I don’t know if I saw this here but, here’s a new programming language, called Roc
Reminds me a bit of Elm and thus Haskell. ...
New

Author Spotlight
James Stanier
@jstanier
James Stanier, author of Effective Remote Work , discusses how to rethink the office as we e...
New

The File System Access API with Origin Private File System.
WebKit supports new API that makes it possible for web apps to create, open,...
New

Develop, deploy, and debug BEAM applications using BEAMOps: a new paradigm that focuses on scalability, fault tolerance, and owning each ...
New
Categories:
Sub Categories:
Popular Portals
- /elixir
- /rust
- /ruby
- /wasm
- /erlang
- /phoenix
- /keyboards
- /rails
- /js
- /python
- /security
- /go
- /swift
- /vim
- /clojure
- /emacs
- /haskell
- /java
- /onivim
- /svelte
- /typescript
- /crystal
- /c-plus-plus
- /kotlin
- /tailwind
- /gleam
- /ocaml
- /react
- /flutter
- /elm
- /vscode
- /ash
- /opensuse
- /centos
- /php
- /deepseek
- /html
- /zig
- /scala
- /sublime-text
- /textmate
- /debian
- /nixos
- /lisp
- /react-native
- /agda
- /kubuntu
- /arch-linux
- /revery
- /django
- /ubuntu
- /spring
- /manjaro
- /diversity
- /nodejs
- /lua
- /c
- /julia
- /slackware
- /markdown