Skip to content

Instantly share code, notes, and snippets.

View carloswm85's full-sized avatar
🎯
Compiling...

Carlos W. Mercado carloswm85

🎯
Compiling...
View GitHub Profile
@carloswm85
carloswm85 / indexable_skip_list.dart
Created April 29, 2024 15:14 — forked from simc/indexable_skip_list.dart
Fast indexable skip list for Dart. All operations (except clear) are O(log n)
import 'dart:collection';
import 'dart:math';
class IndexableSkipList<K, V> {
static const _maxHeight = 12;
final _Node<K, V> _head = _Node(
null,
null,
List.filled(_maxHeight, null),
@carloswm85
carloswm85 / array_iteration_thoughts.md
Last active October 3, 2021 02:47 — forked from ljharb/array_iteration_thoughts.md
Array iteration methods summarized

carloswm85: For personal use.

Array Iteration

https://gist.github.com/ljharb/58faf1cfcb4e6808f74aae4ef7944cff

While attempting to explain JavaScript's reduce method on arrays, conceptually, I came up with the following - hopefully it's helpful; happy to tweak it if anyone has suggestions.

Intro

JavaScript Arrays have lots of built in methods on their prototype. Some of them mutate - ie, they change the underlying array in-place. Luckily, most of them do not - they instead return an entirely distinct array. Since arrays are conceptually a contiguous list of items, it helps code clarity and maintainability a lot to be able to operate on them in a "functional" way. (I'll also insist on referring to an array as a "list" - although in some languages, List is a native data type, in JS and this post, I'm referring to the concept. Everywhere I use the word "list" you can assume I'm talking about a JS Array) This means, to perform a single operation on the list as a whole ("atomically"), and to return