Skip to content

Instantly share code, notes, and snippets.

Philip Nilsson philipnilsson

Block or report user

Report or block philipnilsson

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View gist:9075346
import Text.Parsec
import Control.Applicative hiding ((<|>))
import qualified Data.Map as M
import Data.Either (partitionEithers)
import Data.List (intercalate)
import System.IO (hPutStrLn, stderr)
data Word = Splice String | Word String
deriving (Ord, Eq, Show)
View gist:dff38644687dd3ec8eed
import System.Random
import Control.Monad
count = length . filter id
avenge = do
x <- replicateM 8 randomIO
return $ count x <= 4
test n = do
View gist:7b0974e4a8094c04efb3
data Pair a = Pair a a
data Exp typ where
Vec :: Exp a -> Exp a -> Exp (Pair a)
Const :: Int -> Exp Int
-- with type
type RHS typ = String
View gist:c3a082fb2dc27f0a39cd
vShader :: SC.Shader GLfloat
vShader = do
pos <- attribute vec3 "position"
a_color <- attribute vec3 "a_color"
color <- varying vec3 "color"
gl_Position =: pos .: 1
color =: pos
fShader :: SC.Shader GLfloat
View gist:0dcfc1c403b7164758c3
module Main where
import Engine
pretty elem
= elem $= texture (fromFile "slim.jpg")
scene =
pretty cube $= rotateX 2t $= rotateY 3t
View gist:fa7dc0dba708ef3f218b
combine :: [Either a b] -> ((a,b) -> c) -> [c]
combine xs f = combine' (Nothing, Nothing) xs
where
combine' (_, Just y) (Left l:xs) =
f (l,y) : combine' (Just l, Just y) xs
combine' (Just x, _) (Right l:xs) =
f (x,l) : combine' (Just x, Just l) xs
combine' (_, y) (Left l : xs) =
combine' (Just l, y) xs
combine' (x, _) (Right l : xs) =
View gist:6069238
nonEmptySubsequences = foldr comb []
where comb x xs = xs ++ fmap (x:) ([]:xs)
findSum p = filter (p.sum) . nonEmptySubsequences
hasSum p = not.null . findSum p
-- Trying it in the REPL
@philipnilsson
philipnilsson / gist:6988512
Last active Dec 25, 2015
Language.ECMAScript5, unsafeCoerce to universally quantified constructor.
View gist:6988512
-- | Experimental and very simple quasi-quotation of ECMAScript in
-- Haskell. Doesn't support anti-quotation as of now.
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies #-}
module Language.ECMAScript5.Syntax.QuasiQuote (js, jsexpr, jsstmt) where
import qualified Language.Haskell.TH as TH
import Language.Haskell.TH.Quote
import Text.Parsec hiding (parse)
View gist:6998139
-- | Experimental and very simple quasi-quotation of ECMAScript in
-- Haskell. Doesn't support anti-quotation as of now.
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE Rank2Types #-}
module Language.ECMAScript5.Syntax.QuasiQuote (js, jsexpr, jsstmt) where
import qualified Language.Haskell.TH as TH
import Language.Haskell.TH.Quote
@philipnilsson
philipnilsson / gist:8375266
Last active Jan 2, 2016
Missing integer in arithmetic sequence
View gist:8375266
#include <stdio.h>
int main(void) {
int n, e, i = 0;
scanf("%d\n", &n);
scanf("%d", &e);
int sum = e, first = e, last = e, len = 1;
int delta;
while (++i < n) {
scanf(" %d", &e);
You can’t perform that action at this time.