【问题标题】:Julia - pipe to Julia REPLJulia - 到 Julia REPL 的管道
【发布时间】:2016-09-14 11:14:09
【问题描述】:

我可以将终端输入通过管道传输到正在运行的 Julia REPL 吗?

在终端中我可能会创建一个管道

mkfifo juliapipe

在我尝试过的 Julia REPL 中

connect("juliapipe")

返回错误

ERROR: connect: connection refused (ECONNREFUSED)

有没有办法做到这一点?使用命名管道或任何其他方式

【问题讨论】:

  • 围绕eval(parse(readline(f))) 循环应该基本上执行来自f 的语句,这可以是命名管道。

标签: pipe julia named-pipes read-eval-print-loop


【解决方案1】:

就像@DanGetz 建议的那样,一种方法是display(eval(parse(f))) 直到eof(f)

例如,给定一个文件test.jl

1 + 1 

ans * 3

function f(x)
    x ^ x 
end

f(3)

println("Hello, World!")

我们可以在 REPL 中做

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!

这不是一个 REPL,但与您正在寻找的内容有些相似。

【讨论】:

    猜你喜欢
    • 2015-04-27
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 2021-10-23
    相关资源
    最近更新 更多