I hereby claim:
- I am Leonidas-from-XIV on github.
- I am leonidas (https://keybase.io/leonidas) on keybase.
- I have a public key whose fingerprint is 2584 25CE B974 611B 6423 7553 5759 82D1 87A6 E2C5
To claim this, I am signing this object:
| use std::cast; | |
| fn u8tou64(u: &[u8]) -> &[u64] { | |
| let r:&[u64] = unsafe { cast::transmute(u) }; | |
| r | |
| } | |
| fn main() { | |
| let s = [1u8, 2u8, 3u8, 4u8]; | |
| let v = u8tou64(&s); |
| sort.rs:179:5: 179:16 error: use of moved value: `write_cache` | |
| sort.rs:179 write_cache.push(number); | |
| ^~~~~~~~~~~ | |
| sort.rs:181:31: 181:42 note: `write_cache` moved here because it has type `std::vec::Vec<u64>`, which is non-copyable (perhaps you meant to use clone()?) | |
| sort.rs:181 write_u64(&mut fdOutput, write_cache); | |
| ^~~~~~~~~~~ | |
| sort.rs:180:8: 180:19 error: use of moved value: `write_cache` | |
| sort.rs:180 if write_cache.len() >= items_per_run { | |
| ^~~~~~~~~~~ | |
| sort.rs:181:31: 181:42 note: `write_cache` moved here because it has type `std::vec::Vec<u64>`, which is non-copyable (perhaps you meant to use clone()?) |
| fn read_u64(mut from: File, n: uint) -> ~[u64] { | |
| let mut buffer: Vec<u8> = Vec::with_capacity(n * 4); | |
| let mut buf = buffer.as_mut_slice(); | |
| match from.read(buf) { | |
| Ok(_) => (), | |
| Err(e) => fail!("reading failed {}", e), | |
| }; | |
| let v: ~[u64] = unsafe { std::cast::transmute(buf) }; | |
| v |
| fn write_u64(to: &mut File, items: &Vec<u64>) { | |
| let mut written: Vec<u8> = unsafe { cast::transmute(items) }; | |
| let written_len = written.len(); | |
| unsafe { written.set_len(written_len * 8)}; | |
| match to.write(written.as_slice()) { | |
| Ok(_) => (), | |
| Err(e) => fail!("writing failed: {}", e), | |
| }; | |
| } |
| let mut buffer = [0, .. 8]; | |
| let read = match fdInput.read(buffer) { | |
| Ok(num) => num, | |
| Err(e) => fail!("Couldn't read"), | |
| }; | |
| println!("read {} bytes", read); | |
| let number = match u64::parse_bytes(buffer, 2) { | |
| Some(n) => n, | |
| None => fail!("Reading number"), | |
| }; |
| module Main where | |
| input = [ | |
| "4", "S", "a", "t", "z", "0", | |
| "3", "D", "a", "s", "17", | |
| "3", "e", "i", "n", "1", | |
| "3", "i", "s", "t", "12" | |
| ] | |
| traverse :: [String] -> Int -> [String] |
I hereby claim:
To claim this, I am signing this object:
| breakNth _ [] = ([], []) | |
| breakNth n lat = case splitAt (n-2) lat of | |
| (skipped,r:rs) -> let (skipped', rest) = breakNth n rs in | |
| (skipped ++ skipped', x:r:rest) | |
| (skipped, []) -> (skipped, x:[]) |
| Tue Feb 25 11:21 2014 Time and Allocation Profiling Report (Final) | |
| MajorElement +RTS -p -RTS fb27.txt | |
| total time = 7.05 secs (7047 ticks @ 1000 us, 1 processor) | |
| total alloc = 7,444,747,008 bytes (excludes profiling overheads) | |
| COST CENTRE MODULE %time %alloc | |
| processLine.entries.\ Main 47.8 32.9 |
| slidingWindow :: [Int] -> [[Int]] | |
| slidingWindow [] = [] | |
| slidingWindow [a] = [] | |
| slidingWindow (a:b:xs) = [a,b]:(slidingWindow (b:xs)) | |
| pascalTriangle :: Int -> [Int] | |
| pascalTriangle 0 = [] | |
| pascalTriangle 1 = [1] | |
| pascalTriangle n = 1:(map sum $ slidingWindow $ pascalTriangle $ n-1) ++ [1] |