【发布时间】:2022-12-10 05:57:36
【问题描述】:
我一直在试用图表模块。我想绘制一些简单的数据,在 REPL 中,标准示例:barChart([<"<x>",x> | x <- [1..100]]) 工作正常。但是,当我将同一行代码放入它执行的模块中时,但我在任何地方都看不到图表。
我尝试了chartServer,但这似乎也没有用。
【问题讨论】:
标签: rascal
我一直在试用图表模块。我想绘制一些简单的数据,在 REPL 中,标准示例:barChart([<"<x>",x> | x <- [1..100]]) 工作正常。但是,当我将同一行代码放入它执行的模块中时,但我在任何地方都看不到图表。
我尝试了chartServer,但这似乎也没有用。
【问题讨论】:
标签: rascal
是的。 REPL 有自己的网络服务器,它托管 Content servlet,如果它们在命令后显示为结果。但这并不能阻止您在另一个网络服务器中运行相同的 servlet:
util::IDEServices 提供了 showInteractiveContent 功能,它反映了 REPL 提供的确切功能。这意味着 servlet 在同一端口号上闲置 30 分钟后将被垃圾收集,并且当新的 servlet 注册时,它们可能会重新使用本地主机上先前收集的端口。util::Webserver 提供了几个函数来创建和启动基于相同的 Content 值的类似网络服务器。在这里,您作为程序员负责启动和停止您创建的服务器。
这三个场景都是相同 HTTP 服务器代码的外观,它包装了 Rascal 数据类型和 HTML5 数据类型以及 HTTP 请求和响应之间的桥梁。所以这意味着相同的代码以相同的方式工作,无论您选择三种方式中的哪一种来提供内容。
因此,REPL 和 IDEServices 提供:
Web 服务器选项提供:
因此,对于后者,您必须结合util::IDEServices 中的功能来显示或不显示内容。
【讨论】: