From 96ae5ba8687fd9a5dfcf7405dd3d3fab03a15b8a Mon Sep 17 00:00:00 2001 From: Joshua Moerman Date: Tue, 24 Oct 2017 14:31:05 +0200 Subject: [PATCH] Forgot to add the new Main2.hs file :-( --- run.sh | 10 ++++++++++ src/Main2.hs | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100755 run.sh create mode 100644 src/Main2.hs diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..cf9a8dc --- /dev/null +++ b/run.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# To run with the external teacher in the +# nominal-learning-ons repository + +mkfifo qs ans +time stack exec NominalAngluin2 NomLStarCol > qs < ans & +../nominal-learning-orbitsets/external_teacher qs ans "$@" + +rm qs ans diff --git a/src/Main2.hs b/src/Main2.hs new file mode 100644 index 0000000..27d6c41 --- /dev/null +++ b/src/Main2.hs @@ -0,0 +1,33 @@ +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 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