Skip to content

Instantly share code, notes, and snippets.

### Keybase proof
I hereby claim:
* I am rylev on github.
* I am ryanlevick (https://keybase.io/ryanlevick) on keybase.
* I have a public key whose fingerprint is F379 58BE 0E1A ECE1 D1DB A8E5 243E 54BE D142 3716
To claim this, I am signing this object:
enum Maybe<T> {
case Just(T)
case None
func maybe(def: T, fn: (T) -> (T)) -> T {
switch self {
case let Just(x): return fn(x)
case None: return def
}
}
@rylev
rylev / gist:b40ecce85750bd528c0d
Created August 27, 2014 10:15
Scala If-Bock Styles
if (resp.isSuccess)
Future{ NoContent }
else passthrough(resp)
if (resp.isSuccess) {
Future{ NoContent }
} else {
passthrough(resp)
}
=erl_crash_dump:0.2
Fri Sep 26 14:40:25 2014
Slogan: init terminating in do_boot ()
System version: Erlang R16B01 (erts-5.10.2) [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Compiled: Tue Sep 3 19:23:51 2013
Taints:
Atoms: 4761
=memory
total: 10782344
processes: 3969496
@rylev
rylev / monadfun.scala
Last active August 29, 2015 14:07
An explanation of the map function in Scala.
/* Map */
class Future[A] {
map[B](someMapFunction: A => B): Future[B]
}
// Mapping lets you convert any Future of some type A to a Future of some type B
// For instance you can go from Future[String] to Future[Int]
val myFutureString : Future[String] = Future("some String")
@rylev
rylev / example.rs
Created November 27, 2014 00:15
Compiler Bug Error
use std::io::File; use std::io::FileMode::Open;
use std::io::FileAccess::{Write,ReadWrite};
use std::io::IoResult;
use std::fmt::{Show,Formatter,Error};
const MAX_DATA: uint = 512;
const MAX_ROWS: uint = 100;
struct Field {
@rylev
rylev / bubble.rs
Created December 6, 2014 14:20
Bubble Sort Written In Rust
fn bubble_sort(numbers: &Vec<i64>, compare_fn: |i64, i64| -> i64) -> Vec<i64> {
let mut temp;
let mut target = numbers.clone();
let length = numbers.len();
for _ in range(0, length) {
for j in range(0, length - 1) {
if compare_fn(target[j], target[j+1]) > 0 {
temp = target[j+1];
target[j+1] = target[j];
@rylev
rylev / example.ts
Last active March 17, 2017 13:15
TypeScript
function divide(num1: number | undefined, num2: number | undefined): number | 'no!' | undefined {
if (num1 === undefined || num2 === undefined) { return }
// num1 and num2 now have type number
if (num2 === 0) { return 'no!'}
return num1 / num2
}
@rylev
rylev / rainbow.a
Created March 21, 2017 09:47
Rainbows on Atari 2600
PROCESSOR 6502; set processor
INCLUDE "vcs.h" ; include helpful stuff
INCLUDE "macro.h" ; include helpful stuff
Seg Code ; set code segment
ORG $F000 ; code should start at 0xF000
BGColor equ $81 ; Reserve space at 0x81
Start
@rylev
rylev / main.rs
Created September 12, 2018 14:56
Bubble Sort In Rust
fn main() {
let mut sortable: [i32; 5] = [5, 8, 2, 7, 6];
let length = sortable.len();
let mut swapped = true;
print_array(&sortable);
while swapped {
swapped = false;
for i in 1..length {