标签: elm

榆树编译器永远运行,电脑刚刚变热

我不确定是什么导致了这个问题,但在一个项目中,我正在构建,编译器花费数小时来编译模块.我的代码库总大小为352KB,但没有一个模块超过10KB.我使用的是Native端口,但它非常简单; 我只是Date.now()拿着它.

是否有任何众所周知的会导致elm编译器永远编译?我没有很多依赖项,但我经常使用Html.我真的很感激任何会导致这种情况的提示.

编辑

因此事实证明,大型案例表达式将导致优化器花费很长时间,从0.16开始.以下是关于提出问题的Elm-Discuss的讨论,以及讨厌的案例匹配要点.

我想要冗长并且保留胡萝卜,为什么elm的编译器会采用这种方式进行大小写匹配?这里的底层机器是什么?为什么编译器需要花费超过一个小时来优化案例陈述中的60多个模式匹配?

haskell pattern-matching switch-statement elm

98
推荐指数
1
解决办法
3253
查看次数

类型和类型别名之间的Elm差异?

在榆树,当我想不通type的是适当的关键字对type alias.文档似乎没有对此进行解释,也无法在发行说明中找到.这是在某处记录的吗?

elm

91
推荐指数
3
解决办法
5996
查看次数

```运算符在榆树中意味着什么?

在下面的代码取自Elm Form Example,第122行,<<运算符是什么意思?

Field.field Field.defaultStyle (Signal.send updateChan << toUpdate) "" content
Run Code Online (Sandbox Code Playgroud)

Elm语法参考中找不到它.

这是否意味着,当磁场变化,而不是发送其contentupdateChan,发送toUpdateupdateChan

elm

56
推荐指数
3
解决办法
1万
查看次数

Todomvc中的"![]"榆树代码语法是什么意思

来自反应,我正在学习理解榆树.

Todomvc示例代码中,有以下代码段:

-- How we update our Model on a given Msg?
update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
  case msg of
    NoOp ->
      model ! []        <-- What is this?
Run Code Online (Sandbox Code Playgroud)

我(我想)理解的是,该update函数接受一个msg类型Msg和一个model类型Model,并返回一个包含a Model和a 的元组Cmd Msg.

但是我应该如何阅读return语句?

model ! []
Run Code Online (Sandbox Code Playgroud)

这句话是什么意思?返回"模型[某事]空列表"?
我在文档中遗漏了哪些内容?(谷歌搜索"榆树!"没有让我走得远:)

elm

52
推荐指数
2
解决办法
3900
查看次数

Angular.js与Elm的优点和缺点是什么?

我期待到在浏览器中做一些反应式编程和比较angular.js(http://angularjs.org/与榆树()http://elm-lang.org/).

每个相对的好处/问题是什么?

angularjs elm

50
推荐指数
3
解决办法
2万
查看次数

榆树:你会如何构建和设计你的UI?

在过去的几天里,我学习了榆树,这是一次令人耳目一新的体验.这么多,我不想回到JS土地,:-(.

我的问题是我仍然没有看到用榆树制作网络应用程序的方法,我希望得到一些指导和建议:

evancz/start-app非常适合组织应用程序的结构.与elmfire一起使用
evancz/effects可以处理与Firebase的对话.

但是我如何构建和设计UI?
让我们举一个具体的例子:来自Semantic-UI样式化选择小部件.
它被实现为div的列表,以及一些JS来处理下拉列表和多选.

到目前为止我找到的替代方案是:

  1. 包括Semantic的CSS和JS(它需要JQuery)并使用ports来挂钩widget的JS事件.
  2. 仅包含Semantic的CSS并尝试在Elm中构建功能.
  3. 两者都构建了Elm (adam-r-kowalski/Elm-Css)的功能和风格.
  4. 忘记Semantic并使用circuithub/elm-bootstrap-html重做Bootstrap中的站点.

是否还有其他替代方案,或者可以重复使用的小工具,我错过了?

TheSeamau5/TabbedPages容器肯定是恐吓.其他小部件需要这么多工作吗?

再一次,我喜欢将Elm用于我的项目,但我自己也没有知识也没有时间自己编写所有小部件.

对于上下文,我使用Semantic的小部件是:

  • 两个汉堡包菜单,屏幕两侧各一个.
  • 风格精选.
  • 披露三角形,隐藏/显示更多内容.
  • 类似于卡鲁塞尔的图像显示,其中包含prev/next和底部的点.

再次感谢您为榆树所做的工作,以及您可以给我的任何建议.

PS:我也在elm的邮件列表中发布了这个问题.

elm

42
推荐指数
2
解决办法
9710
查看次数

榆树与ClojureScript相比如何?

我已经到了使用Backbone.js面向对象的MVC模式的GUI编码变得非常复杂并且环顾其他范例的程度.MDV,FRP,ECS,哦,我的.

榆树ClojureScript相比如何?它们在哪里重叠?

两者都是与编译为JS的JS非常不同的语言.我知道Elm是一种功能性反应式编程(FRP)语言.ClojureScript不一定是FRP,但你可以用它来做FRP.Elm使用JVM编译Haskell和ClojureScript,因此这些都是Node商店的额外要求.

也许它只是归结为Clojure vs Haskell.

clojurescript elm

39
推荐指数
3
解决办法
7077
查看次数

如何设置焦点在Elm中的元素?

如何将焦点设置在Elm中的Html元素上?我试图在元素上设置autofocus属性,它只将焦点设置在页面加载上.

html elm

39
推荐指数
3
解决办法
6513
查看次数

如何在Elm中创建HTML数据属性?

我需要使用自定义"data-*"属性标记我的Elm.Http元素,例如:

<tr data-row="1">...</tr>
Run Code Online (Sandbox Code Playgroud)

我尝试过以下方法:

import Html exposing (..)
import Html.Attributes exposing (..)
import Json.Encode as JsEncode

view ... =
  tr [ property "data-row" (JsEncode.string (toString 1)) ]
Run Code Online (Sandbox Code Playgroud)

但这没有任何作用.有人知道吗?

我认为问题是Elm实际上是在设置JavaScript DOM属性,所以我真的想以某种方式调用element.dataset.row ="1".

背景是我需要为我的事件处理程序向jQuery公开一些数据,因为Elm事件库缺少一些我需要的功能,例如条件化的preventDefault和表单序列化.还有其他方法可以通过DOM提供数据,但data-*属性是迄今为止最简单的.

elm

37
推荐指数
1
解决办法
4726
查看次数

Divisible Type类是否有用?

我最近一直在研究Elm中的一个API,其中一个主要类型是逆变.所以,我已经用Google搜索了解逆变类型可以做什么,并发现Haskell的Contravariant包定义了Divisible类类.

它的定义如下:

class Contravariant f => Divisible f where
  divide  :: (a -> (b, c)) -> f b -> f c -> f a
  conquer :: f a 
Run Code Online (Sandbox Code Playgroud)

事实证明,我的特定类型适合Divisible类型的定义.虽然Elm不支持类型类,但我会不时地查看Haskell以获得一些灵感.

我的问题:这种类型有任何实际用途吗?Haskell(或其他语言)中是否存在受益于这种分治模式的已知API?我应该注意哪些问题?

非常感谢您的帮助.

haskell types type-theory functional-programming elm

30
推荐指数
3
解决办法
1250
查看次数