From d9529c0f197030d53e558b5d071b4986a8f39775 Mon Sep 17 00:00:00 2001 From: stmtk1 <13043069@gakushuin.ac.jp> Date: Wed, 30 May 2018 19:18:49 +0900 Subject: [PATCH] get_var ver go implements --- brain_go.hs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/brain_go.hs b/brain_go.hs index 08805a8..9119d61 100644 --- a/brain_go.hs +++ b/brain_go.hs @@ -10,7 +10,6 @@ package main import( "fmt" - //"strings" ) type TuringTape struct { @@ -72,6 +71,10 @@ func print_var(a *TuringTape) { fmt.Printf("%c", a.tape[a.head]) } +func get_var(a *TuringTape) { + fmt.Scanf("%c", &a.tape[a.head]) +} + |] convert_brainfuck :: String -> String @@ -82,7 +85,7 @@ convert_brainfuck ('-':rest) = "decrement(&a)\n" ++ convert_brainfuck rest convert_brainfuck ('>':rest) = "next_var(&a)\n" ++ convert_brainfuck rest convert_brainfuck ('<':rest) = "prev_var(&a)\n" ++ convert_brainfuck rest convert_brainfuck ('.':rest) = "print_var(&a)\n" ++ convert_brainfuck rest --- convert_brainfuck (',':rest) = " get_var()\n" ++ convert_brainfuck rest +convert_brainfuck (',':rest) = " get_var(&a)\n" ++ convert_brainfuck rest convert_brainfuck ('[':rest) = " for a.tape[a.head] != 0 {\n" ++ convert_brainfuck rest convert_brainfuck (']':rest) = "}\n" ++ convert_brainfuck rest convert_brainfuck (_:rest) = convert_brainfuck rest