Skip to content

Instantly share code, notes, and snippets.

prime :: Int -> Int
prime n = last $ take n $ preparePrime [2, 3 ..]
where preparePrime (x:xs) = [x] ++ [y | y <- xs, y `mod` x /= 0]
module Game where
import Data.Array
import System.Random
import Prelude hiding (Either(..))
data Move = Up | Down | Left | Right deriving (Enum)
type Label = Int
type Pos = (Int, Int)
import Debug.Trace
-- trace :: String -> a -> a
echo :: Show a => a -> a
echo a = trace (show a) a
fib' :: Int -> Int
fib' 0 = 1
fib' n = echo $ n * fib' (n - 1)
@vlas-ilya
vlas-ilya / traversalTree.hs
Created October 22, 2015 17:16
Нумеруем узлы дерева с помощью монады State
traversalTree :: Tree () -> State Integer (Tree Integer)
traversalTree (Leaf _) = do
n <- get
put (n + 1)
return (Leaf n)
traversalTree (Fork left cur right) = do
left' <- traversalTree left
n <- get
put (n + 1)
right' <- traversalTree right
import Prelude hiding (lookup)
class MapLike m where
empty :: m k v
lookup :: Ord k => k -> m k v -> Maybe v
insert :: Ord k => k -> v -> m k v -> m k v
delete :: Ord k => k -> m k v -> m k v
fromList :: Ord k => [(k,v)] -> m k v
newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v }
import Prelude hiding (lookup)
import qualified Data.List as L
class MapLike m where
empty :: m k v
lookup :: Ord k => k -> m k v -> Maybe v
insert :: Ord k => k -> v -> m k v -> m k v
delete :: Ord k => k -> m k v -> m k v
fromList :: Ord k => [(k,v)] -> m k v
fromList [] = empty
@vlas-ilya
vlas-ilya / parsePerson.hs
Created October 14, 2015 09:59
parsePerson "firstName = John\nlastName = Connor\nage = 30"
import Data.Char(isDigit)
data Error = ParsingError | IncompleteDataError | IncorrectDataError String
deriving (Show)
data Person = Person { firstName :: String, lastName :: String, age :: Int }
deriving (Show)
split delimiter = foldr f [[]]
where f c l@(x:xs) | c == delimiter = []:l
var titleToNumber = function (str) {
var result = 0;
str.split('').reverse().forEach(function (ch, index) {
result += (ch.charCodeAt(0) - 64) * Math.pow(26, index);
});
return result;
}
@vlas-ilya
vlas-ilya / matreshka.js_and_select2.js
Created October 12, 2015 16:05
Правильный вариант
<!DOCTYPE html>
<html>
<head>
<title>Test Select form Matreshka</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<link href="http://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.min.css" rel="stylesheet" />
<script src="http://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.min.js"></script>
<script src="http://cdn.jsdelivr.net/matreshka/latest/matreshka.min.js"></script>
</head>
<body>
@vlas-ilya
vlas-ilya / collections.hs
Created October 12, 2015 05:50
Работа со списками в Haskell
import Data.Char
import Data.List
readDigits :: String -> (String, String)
readDigits = span isDigit
filterDisj :: (a -> Bool) -> (a -> Bool) -> [a] -> [a]
filterDisj f g = filter (\x -> f x || g x)
qsort :: Ord a => [a] -> [a]