1
Fork 0
mirror of https://github.com/Jaxan/nominal-lstar.git synced 2025-04-27 22:57:45 +02:00
nominal-lstar/src/Main2.hs
2020-05-25 16:38:46 +02:00

33 lines
928 B
Haskell

import Angluin
import Bollig
import Examples
import Teacher
import ObservationTable
import NLStar
import System.Environment
import System.IO
import NLambda
data Learner = NomLStar | NomLStarCol | NomNLStar
deriving (Show, Read)
learn alphSet = do
[learnerName] <- getArgs
let t = teacherWithIO2 alphSet
let h = case read learnerName of
NomLStar -> learnAngluinRows t
NomLStarCol -> learnAngluin t
NomNLStar -> learnBollig 0 0 t
hPrint stderr h
main :: IO ()
main = do
[learnerName] <- getArgs
putStrLn "ALPHABET" -- ask for the alphabet from the teacher
hFlush stdout
alph <- getLine
case alph of
"ATOMS" -> learn atoms
"FIFO" -> learn (NLambda.map Put atoms `union` NLambda.map Get atoms)
_ -> error $ "Unknown alphabet " ++ alph