Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fun grupper 0 x = [x]
- | grupper n x =if length(x) > n then (List.take(x,n))::(grupper n (List.drop(x,n))) else [x];
- fun removeelement (x::xs) y = if x = y then (removeelement xs y) else x::(removeelement xs y)
- | removeelement [] _ = []
- fun klassdel2 k = map (fn x => [[x],(removeelement k x )]) k
- fun klassdelsingels x = map (fn x => [x]) x;
- fun klassdelmid (k as x::xs) y = let val len = length k; in if x <> y then if len > 2 andalso len mod 2 = 0 then [(grupper 2 k)]@(klassdelmid (List.drop(k,1)@[x]) y ) else [[k]] else []
- end
- | klassdelmid [] _ = [];
- fun klassdelpar x = let
- val len = length x div 2;
- val nyliste =List.drop(x,len)@List.take(x,len); in (klassdelmid x (List.last(x)))@(klassdelmid nyliste (List.last(nyliste)))
- end
- fun member(x,ys) = List.exists (fn y => x = y) ys;
- (* offtrack
- fun klassdel1 (k as x::xs) n =
- let
- val len = length k;
- val midlist = List.drop(k,n);
- val endlist = List.drop(k,(len-n));
- val nyliste =List.drop(x,len)@List.take(x,len);
- in [(List.take(k,n)),(List.filter (fn x => not (member(x,endlist))) midlist),(endlist)] @(klassdel1 [nyliste n)
- end
- | klassdel1 _ _ = [] )*)
- fun klassdel1sub (k as x::xs) = let
- val len = length k;
- val midlist = List.drop(k,1);
- val endlist = List.drop(k,(len-1));
- val nyliste =List.drop(x,len)@List.take(x,len);
- in if length k > 3 then [[x],(List.filter (fn x => not (member(x,endlist))) midlist),(endlist)]
- else []
- end
- | klassdel1sub _ = []
- fun klassdel1 k = let
- val mid = (length k) div 2;
- val len = length k;
- val nyliste =List.drop(k,len div 2)@List.take(k,len div 2 ); in
- if length (k) > 4 then k else k
- end
- (* FUCKING LORTE KOMBANITORIK TO DO:
- lav enderne, samt nyliste ender *)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement