2016-09-14 12 views
2

Kann ich Terminal-Eingang zu einem laufenden Julia REPL?Julia - Rohr zu Julia REPL

In einem Terminal I ein Rohr

mkfifo juliapipe 

Im Inneren der Julia REPL schaffen könnte habe ich

versucht
connect("juliapipe") 

, die den Fehler zurückgibt

ERROR: connect: connection refused (ECONNREFUSED) 

Gibt es eine Möglichkeit zu mach das? Entweder mit Named Pipes oder auf andere Weise

+0

Eine Schleife um 'eval (parse (readline (f)))' sollte grundsätzlich Anweisungen von 'f' ausführen, was eine benannte Pipe sein kann. –

Antwort

2

Wie von @DanGetz vorgeschlagen, wäre ein Ansatz display(eval(parse(f))) bis eof(f).

Zum Beispiel gegeben eine Datei test.jl:

1 + 1 

ans * 3 

function f(x) 
    x^x 
end 

f(3) 

println("Hello, World!") 

wir können in der REPL tun

julia> open("test.jl") do f 
      global ans 
      while !eof(f) 
       cmd = parse(f) 
       println("file> $cmd") 
       ans = eval(cmd) 
       if ans !== nothing 
        display(ans) 
        println() 
       end 
      end 
     end 

file> 1 + 1 
2 

file> ans * 3 
6 

file> function f(x) # none, line 3: 
    x^x 
end 
f (generic function with 1 method) 

file> f(3) 
27 

file> println("Hello, World!") 
Hello, World! 

die nicht ganz ein REPL ist aber etwas ähnlich zu dem, was Sie suchen.