2016-09-14 6 views
2

Могу ли я подключить терминал к работающей Julia REPL?Julia - pipe to Julia REPL

В терминале я мог бы создать трубу

mkfifo juliapipe 

Внутри Юлии РЕПЛ Я попытался

connect("juliapipe") 

, который возвращает ошибку

ERROR: connect: connection refused (ECONNREFUSED) 

Есть ли способ сделай это? Либо с именованными трубами, либо любым другим способом

+0

Выполнение цикла вокруг 'eval (parse (readline (f)))' должно в основном выполнять инструкции из 'f', который может быть именованным каналом. –

ответ

2

Как и в случае с @DanGetz, один подход будет соответствовать display(eval(parse(f))) до eof(f).

Например, данный файл test.jl:

1 + 1 

ans * 3 

function f(x) 
    x^x 
end 

f(3) 

println("Hello, World!") 

мы можем в РЕПЛ сделать

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! 

, которая не совсем РЕПЛ, но несколько похоже на то, что вы ищете.