在 Elm 中是否有一种简单且受支持的方式来编写控制台应用程序(最好是在 Node 中)?如果是这样,“Hello, World”是什么样子的?
我知道有一些软件包,其中大多数显然没有维护,声称可以做类似的事情,但它们在某种程度上看起来都像是拼凑而成。
最佳答案
Elm 从 0.18 开始是一种仅限前端的语言。将来可能会对后端友好。但现在不是这样吗。请参阅here
但是,这并不意味着您不能将它与 Node 一起使用。您只需要使用“worker”模式并通过端口传入和传出所有数据。例如:
port module Main exposing (..)
import Platform
port getName : (String -> msg) -> Sub msg
port sendGreeting : String -> Cmd msg
type alias Model = {}
type Msg =
GreetUser String
update msg model =
case msg of
GreetUser name -> (model, sendGreeting name)
main = Platform.program
{ init = ( {}, Cmd.none)
, update = update
, subscriptions = \model -> getName GreetUser
}
然后您可以通过 elm-make Main.elm --output elm.js
编译它,并在 JS 中引用它,如下所示:
const Elm = require("./elm.js");
const app = Elm.Main.worker();
app.ports.sendGreeting.subscribe((greeting) => console.log(greeting));
app.ports.getName.send("Noah")
有很多应用程序可以执行此操作,例如:
- 榆树草图导入器
- elm 验证示例
- 榆树分析
- 榆树 fuse
关于javascript - 带控制台/Node 的 Elm 中的 Hello World,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45428878/