Skip to content

Instantly share code, notes, and snippets.

View kevinadi's full-sized avatar

Kevin Adistambha kevinadi

  • MongoDB
  • Sydney, Australia
View GitHub Profile
@kevinadi
kevinadi / nodejs-mongodb.js
Last active May 4, 2016 07:26
NodeJS: Connect to MongoDB
// MongoClient -- callbacks
var assert = require('assert')
var MongoClient = require('mongodb').MongoClient
MongoClient.connect('mongodb://localhost:27017/test', function(err,db) {
assert.equal(null,err)
console.log('connected')
db.collection('test').find().toArray(function(err,res) {
assert.equal(null,err)
console.log(res)
})
@kevinadi
kevinadi / split-with-substring.hs
Last active August 29, 2015 14:19
Haskell: split a string using a substring
splitStr :: Eq a => [a] -> [a] -> [[a]]
splitStr sub str = split' sub str [] []
where
split' _ [] subacc acc = reverse (reverse subacc:acc)
split' sub str subacc acc
| sub `isPrefixOf` str = split' sub (drop (length sub) str) [] (reverse subacc:acc)
| otherwise = split' sub (tail str) (head str:subacc) acc
@kevinadi
kevinadi / split-with-char.hs
Created April 24, 2015 02:02
Haskell: split a string using a char
wordsWhen :: (Char -> Bool) -> String -> [String]
wordsWhen p s = case dropWhile p s of
"" -> []
s' -> w : wordsWhen p s''
where (w, s'') = break p s'
@kevinadi
kevinadi / split-to-chunks.hs
Created April 24, 2015 02:01
Haskell: split a string to chunks
chunks :: Int -> [a] -> [[a]]
chunks _ [] = []
chunks n xs = (fst c) : chunks n (snd c)
where c = splitAt n xs
chunks' :: Int -> [a] -> [[a]]
chunks' n = unfoldr (\b -> if null b then Nothing else Just (splitAt n b))
chunks'' :: Int -> [a] -> [[a]]
chunks'' n = takeWhile (not.null) . unfoldr (Just . splitAt n)
@kevinadi
kevinadi / reimplementations.hs
Last active August 29, 2015 14:19
Haskell: learning how basic functions work
fold' :: (b->a->b) -> b -> [a] -> b
fold' f b [] = b
fold' f b (h:t) = fold' f (f b h) t
map' :: (a->b) -> [a] -> [b]
map' f lst = fold' (\b a -> b ++ [f a]) [] lst
map'' :: (a->b) -> [a] -> [b]
map'' f [] = []
map'' f (h:t) = f h : map'' f t