Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
module STAL
where
import List
import DB
naturals = [0..]
evens1 = [ n | n <- naturals , even n ]
odds1 = [ n | n <- naturals , odd n ]
evens2 = [ 2*n | n <- naturals ]
small_squares1 = [ n^2 | n <- [0..999] ]
small_squares2 = [ n^2 | n <- naturals , n < 1000 ]
run :: Integer -> [Integer]
run n | n < 1 = error "argument not positive"
| n == 1 = [1]
| even n = n: run (div n 2)
| odd n = n: run (3*n+1)
ones = 1 : ones
characters = nub [ x | ["play",_,_,x] <- db ]
movies = [ x | ["release",x,_] <- db ]
actors = nub [ x | ["play",x,_,_] <- db ]
directors = nub [ x | ["direct",x,_] <- db ]
dates = nub [ x | ["release",_,x] <- db ]
universe = nub (characters++actors++directors++movies++dates)
direct = [ (x,y) | ["direct",x,y] <- db ]
act = [ (x,y) | ["play",x,y,_] <- db ]
play = [ (x,y,z) | ["play",x,y,z] <- db ]
release = [ (x,y) | ["release",x,y] <- db ]
charP = \ x -> elem x characters
actorP = \ x -> elem x actors
movieP = \ x -> elem x movies
directorP = \ x -> elem x directors
dateP = \ x -> elem x dates
actP = \ (x,y) -> elem (x,y) act
releaseP = \ (x,y) -> elem (x,y) release
directP = \ (x,y) -> elem (x,y) direct
playP = \ (x,y,z) -> elem (x,y,z) play
q1 = [ x | x <- actors, directorP x ]
q2 = [ (x,y) | (x,y) <- act, directorP x ]
q3 = [ (x,y,z) | (x,y) <- direct, (y,z) <- release ]
q4 = [ (x,y,z) | (x,y) <- direct, (u,z) <- release, y == u ]
q5 = [ (x,y) | (x,y) <- direct, (u,"1995") <- release, y == u ]
q6 = [ (x,y,z) | (x,y) <- direct, (u,z) <- release,
y == u, z > "1995" ]
q7 = [ x | ("Kevin Spacey",x) <- act ]
q8 = [ x | (x,y) <- release, y > "1997", actP ("William Hurt",x) ]
q9 = q1 /= []
q10 = [ x | ("Woody Allen",x) <- direct ] /= []
q10' = directorP "Woody Allen"
elem' :: Eq a => a -> [a] -> Bool
elem' x [] = False
elem' x (y:ys) | x == y = True
| otherwise = elem' x ys
addElem :: a -> [[a]] -> [[a]]
addElem x = map (x:)
powerList :: [a] -> [[a]]
powerList [] = [[]]
powerList (x:xs) = (powerList xs) ++ (map (x:) (powerList xs))
data S = Void deriving (Eq,Show)
empty :: [S]
empty = []
display :: Int -> String -> IO ()
display n str = putStrLn (display' n 0 str)
where
display' _ _ [] = []
display' n m (x:xs) | n == m = '\n': display' n 0 (x:xs)
| otherwise = x : display' n (m+1) xs