Skip to content

Instantly share code, notes, and snippets.

View TomasDrozdik's full-sized avatar

drozt TomasDrozdik

View GitHub Profile
permurations(Xs, Pss) :-
findall(Ys, permutace(Xs, Ys), Pss).
permList(Xs, AkYss, Yss) :-
permutace(Xs, Ys),
\+member(Ys, AkYss),
permList(Xs, [Ys|AkYss], Yss), !.
permList(_, AkYss, Yss) :-
reverse(AkYss, Yss), !.
data Tree a = Tree a [Tree a] deriving Show
label :: Tree a -> Tree (a, Int)
label t = label' 1 t
label' :: Int -> Tree a -> Tree (a, Int)
label' i (Tree x []) = Tree (x, i) []
label' i (Tree x ts) =
let
processed = goThrough i ts
module CFG where
type NT = String
type T = String
data RightSide = NTs (NT, NT) | Term T deriving (Show, Eq, Ord)
type Rule = (NT, RightSide)
type CFG = [Rule]