javascript - 带控制台/Node 的 Elm 中的 Hello World

标签 javascript node.js elm

在 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/

相关文章:

javascript - 如何在 Elm 中使用外部 JavaScript 库?

javascript - 我如何调试 charts.js 中的 maxTicksLimits?

javascript - Google oauth2 web 应用程序与 javascript 应用程序

node.js - 模拟无效的 HTTP 请求

elixir - 如何在 phoenix/elixir 中启用 Elm 0.18 的调试标志

haskell - Elm 的信号系统可以作为 Haskell 库使用吗?

javascript - 多个 ng-app 如何以 Angular 工作(为什么这样的行为?)

javascript - Sencha Touch 2 中的 Ext.define/Ext.extend

javascript - __dirname 未在 Node.js 10 实验中定义?

node.js - 如何开发 https Nodejs Web 应用程序以便不显示安全警告