タグ

ブックマーク / qiita.com/jinjor (5)

  • Elm Analyse でコード品質を担保する - Qiita

    (場合によっては多少待ちます) チェック事項 以下の項目をチェックします。 CoreArrayUsage Elm 0.18 の Array にはバグがあるので、今は Skinney/elm-array-exploration を使った方がいい(0.19 でコアにマージされます)。 DebugCrash Debug.crash が使われている。 DebugLog Debug.log が使われている。 DropConcatOfLists リストを無駄な結合 [1,2,3] ++ [4,5] は [1,2,3,4,5] のようにまとめた方が良い。 DropConsOfItemAndList リストを無駄な結合 1::[2,3,4] は [1,2,3,4] のようにまとめた方が良い。 DuplicateImport 同じモジュールを2回インポートしている。

    Elm Analyse でコード品質を担保する - Qiita
  • Elm で構文解析しよう - Qiita

    こうすることによって、生の文字列よりもプログラムで扱うことが簡単になります。 しかし、どうすればこの構造を得ることができるのでしょうか?少し考えてみましょう。 split と trim で頑張る 正規表現で頑張る ループで頑張る 全部つらそうですね。 Elm の構文解析器(パーサー) elm-tools/parser は、そんな構文解析を超シンプルな記述で実現してしまうライブラリです。Elm の作者である Evan 氏自身によって書かれています。 例として公式のサンプルを引用してみます。ここでは ( 3, 4 ) のような文字列を2次元の座標として解釈するパーサー point を定義しています。 import Parser exposing (Parser, (|.), (|=), succeed, symbol, float, ignore, zeroOrMore) type alias

    Elm で構文解析しよう - Qiita
  • [Elm] Web API サポート状況 - Qiita

    Elm Advent Calendar 2016 の16日目です。 Web API のサポート状況 A Farewell to FRP で触れられている通り、Elm は Web API を使ったライブラリの公開をコミュニティに許していません。(これについては議論すると長くなるので、詳しくは読みにいってください。) そこで、よく知られている Web API のサポート状況をざっくり表にまとめました。該当パッケージがない場合は、Port を使いましょう。 API 該当パッケージ 補足

    [Elm] Web API サポート状況 - Qiita
  • [Elm] Html.Lazyによるパフォーマンス最適化 - Qiita

    Elm Advent Calendar 2016 の10日目の記事です。 今回は、Html.Lazy モジュールについて。 Html.Lazy とは Virtual DOM のパフォーマンスがいくら良いとは言え、無駄な Virtual DOM を際限なく作り続けるとコストになります。そこで、Html.Lazy モジュールはこのコストを抑え、パフォーマンスを最適化する方法を提供します。 仕組み 一言で言うと「モデルが変わらなければビューも変わらない」という性質を利用します。Elm の関数はすべて純粋であることが保証されているため、引数が変わらなければ返す結果はいつも同じです。そこで、Elm ランタイムはHtmlを生成する関数の引数が前回と同じであるかを見て、同じであればロジックを丸ごとスキップして前回の値を使いまわします。 使い方 使い方は簡単です。ビューを生成する関数の頭にlazyとつける

    [Elm] Html.Lazyによるパフォーマンス最適化 - Qiita
  • Elmにおけるバグ報告・機能要望の出し方 - Qiita

    的に新しい機能に対しては慎重なので、いきなりPRを送ってもまずマージされません。特に議論が必要になりそうなものは、Issueではなくelm-discussでコンセンサスを取るところからはじめるのが良いでしょう。 要望の内容は、ユースケースを一緒に書くと喜ばれます。ただ「この機能がほしい」と言っても「なぜそれが必要になるのか?」と問い詰められるので、「こういうことをする時にこの機能がなくて困るから追加してほしい」と説明するのが良いです。そうすると、今のAPIがそのようになっている理由を説明されたり、別の解決方法じゃなぜ駄目なのかという話になり、最終的に「もっともらしい」と判断されると人知れずタスクに詰まれます。 例えば、「型クラス追加して欲しい」よりも、「辞書のキーにBoolを入れられるようにして欲しい」とか「回避策としてBoolをStringにシリアライズするとコード量が3倍になった」

    Elmにおけるバグ報告・機能要望の出し方 - Qiita
  • 1