Using Python's built-in defaultdict we can easily define a tree data structure:
def tree(): return defaultdict(tree)
That's it!
Using Python's built-in defaultdict we can easily define a tree data structure:
def tree(): return defaultdict(tree)
That's it!
Haskell is cool! | |
Here are some reasons why. | |
(This is a Literate Haskell file, so you can load it and then follow | |
along with the examples by running `ghci whyhaskelliscool.lhs`) | |
"Pattern matching" syntax for defining functions is cool, letting you | |
avoid 'if' statements and simply write out the different behaviors of | |
a function: |
import collections | |
from typing import Counter, List, Set, Tuple | |
def subanagrams(letters: Counter[str], words: Set[str], min_len=4) -> List[Tuple[str, Counter[str]]]: | |
anagrams = [] | |
for word in words: | |
if len(word) < min_len: continue | |
rest = letters.copy() |
import asyncio | |
import aiofiles # third party package, install from pip | |
# bytes outputted by the imaginary joystick device: | |
CENTER = b'x' | |
NORTH = b'n' | |
EAST = b'e' | |
SOUTH = b's' |
// We have some state like: | |
const state1 = { | |
data: { some: 'stuff' }, | |
people: ['blah', 'blah', 'blah'], | |
memberships: [ | |
{ id: 1, roles: [], other: 'stuff' }, | |
{ id: 2, roles: ['client'], more: 'junk' } | |
] | |
}; |
// We have some state like: | |
const state1 = { | |
data: { some: 'stuff' }, | |
people: ['blah', 'blah', 'blah'], | |
memberships: [ | |
{ id: 1, roles: [], other: 'stuff' }, | |
{ id: 2, roles: ['client'], more: 'junk' } | |
] | |
}; |
import collections | |
class LinkedList: | |
def __init__(self, value, tail=None): | |
self.value = value | |
self.tail = tail | |
def tee(iterable, n=2): | |
it = iter(iterable) | |
empty = LinkedList(None) |
I hereby claim:
To claim this, I am signing this object:
dedup [] = [] | |
dedup (x:xs) = dedup' x xs | |
where | |
dedup' x [] = [x] | |
dedup' x (x:xs) = dedup' x xs | |
dedup' y (x:xs) = y : dedup' x xs |
for (var v = 0; v < 2*N; v++) { | |
for (var u = -N; u < N; u++) { | |
var w = getCube(u, v); | |
if (w > 0 && w < tick) { // there's a cube and it's not one we just created | |
setCube(u, v, 0); // remove it | |
if (u < N && v > 0) { | |
if (Math.random() < 0.5) // 50% of the time | |
setCube(u + 1, v - 1, tick); // directly above | |
if (Math.random() < 0.25) // 25% of the time | |
setCube(u + 1, v - 2, tick); // above-left |