並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 70件

新着順 人気順

Elmの検索結果1 - 40 件 / 70件

  • 2023 年、改めて React と Elm Architecture を比較する - ジンジャー研究室

    最近 React のドキュメントが新しくなったということで読んでみた。第一印象としては、とにかく懇切丁寧で React というか JavaScript すら初心者という読者でも基礎的な考え方が身に付くようになっている。ただ、深い内容まで読み進めると「同じ Virtual DOM のフレームワークでも Elm とだいぶ違うな」と改めて思った。 これはどちらが良いとか悪いということではなく、一長一短あると思う。筆者は長いこと Elm を使ってきたが React も嫌いではなく、趣味を含め色々な場面で重宝している。ただ、 Elm Architecture の提供するシンプルな仕組みには依然として価値があると思っており、それがあまり世の中に知られていないのが勿体無い。というのが、この記事を書こうと思った動機である。 昔は「部分的に取り入れても Elm メリットは享受できないから Elm やってよ」

      2023 年、改めて React と Elm Architecture を比較する - ジンジャー研究室
    • パッケージマネージャを自作するときに考えること - gfnweb

      プログラミング言語を自前で創っていると,パッケージマネージャが欲しくなってくるものだ.既存パッケージマネージャやそのラッパーによる配布で事足りることも多いが,自前言語の要件とうまく合わなかったりして,真に自分で実装せねばならないこともある.そうした場合,パッケージマネージャをどんな設計にすべきだろうか? 言語固有の都合には触れずになるべく一般に考慮すべき事項を洗い出し,簡単な設計例も提示してみたい. なお,本稿はパッケージマネージャの設計に焦点を当てたものであり,効率的に依存制約を解消するアルゴリズムなど実装の詳細については解説しない.実際例えばOCamlでは 0install-solver というOPAMの裏でも使われているパッケージを利用すれば制約解消アルゴリズムそのものに踏み込まずとも制約解消処理を実装でき,(それ自体に興味があるときを除けば)必ずしもアルゴリズムを理解する必要はない

      • 【超朗報】サイゼ、青森県初上陸に県民歓喜!!!!!→五所川原だった「なんで?」「これ三大都市間抗争の政治的配慮だろ」

        マキタニさん🇮🇹サイゼリヤはちゃんとおいしい @saizeriyaphile フォローするとサイゼリヤの新しいメニューや気になる情報や写真が飛び交うことがあります/ ツイートとRTにサイゼリヤ成分多め/ サイゼリヤ ウォッチャー/ サイゼリヤ アドボケーツ/ 好きなメニューは青豆とプリン/ ソロ活/ 本職はデジタルマーケティング支援 https://t.co/yAFjgJF8AH マキタニさん🇮🇹サイゼリヤはちゃんとおいしい @saizeriyaphile サイゼリヤ、ついに青森県に進出! おめでとうございます 青森県五所川原市にあるショッピングセンター「ELM (エルム)」に出店とのこと 遅かれ早かれ青森県には出店するんだろうなーと思っていたけれど、青森市でも八戸でも弘前でもなく、まさかの五所川原市! saizeriya.co.jp/PDF/irpdf00136… pic.twi

          【超朗報】サイゼ、青森県初上陸に県民歓喜!!!!!→五所川原だった「なんで?」「これ三大都市間抗争の政治的配慮だろ」
        • 集合としての型 · An Introduction to Elm

          集合としての型 これまでBoolやInt、Stringのような型を見てきました。 そしてカスタム型を以下のように定義しました。 type Color = Red | Yellow | Green Elmにおけるプログラミングの中で最も重要なテクニックのひとつは、コード中で可能な値を現実世界での正当な値に完全に一致させることです。これにより不正なデータの入り込む余地がなくなるため、私はカスタム型とデータ構造に注力するようにみんなに勧めています。 この目的を追求するにあたっては、私は型と集合の関係を理解することが役に立つということに気づきました。少し難しく聞こえるかもしれませんが、これは本当にマインドセットを開発するのに役立ちます! 集合 型は値の集合だとみなすことが出来ます Bool は { True, False } のなす集合 Color は { Red, Yellow, Green }

          • Bubble Tea でリッチなターミナルアプリケーションを作る #Go - 詩と創作・思索のひろば

            近年、普段の作業をマウスでやりたくない気持ちが高まっている(デスク周りが散らかってきたせいだという説が有力です)。メールは結局ターミナルでメールを読むことにしたため問題なく過ごせているが、その他のタスクをキーボードだけでやるには、ターミナル動くアプリケーションを作れる必要がある。それもリッチなやつだ。見た目は派手な方がいい。 この記事は Kyoto.go remote #32 LT会 で発表した 入門 Bubble Tea の増補版です。 Bubble Tea とは GitHub - charmbracelet/bubbletea: A powerful little TUI framework 🏗 Bubble Tea とは、Go でリッチなターミナルアプリケーション(TUI)を作るためのフレームワーク。Charm というプロジェクトの一部のようで、ホームページを見てもらったら分かると

              Bubble Tea でリッチなターミナルアプリケーションを作る #Go - 詩と創作・思索のひろば
            • Tail recursion, but modulo cons

              If you have been programming for a while, you must have heard about recursion at one point or another. If you work with Elm or other functional programming languages, chances are high you use it regularly (even though you may prefer alternatives). A recursive function is a function that calls itself anywhere in its implementation. Here’s a textbook example of recursion, implementing the factorial

              • GitHub - eeue56/derw: An Elm-inspired language that transpiles to TypeScript

                You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                  GitHub - eeue56/derw: An Elm-inspired language that transpiles to TypeScript
                • なぜElmは0.19のままか、変化すること/しないこと - Runner in the High

                  discourse.elm-lang.org つい先日、数か月ぶりにElmのupdate話がでてきた。 Elmは0.19からほとんどメジャーバージョンアップしていない。最後のリリースは約9か月前にもなる。 この事実だけを知ると「Elmはもう終わったのか」「Evan*1は開発のモチベーションを失ったのか」と思われることがある。実際そういう話はネットでチラホラ見かける。確かに、フロントエンド開発言語のAltJSとして近しいTypeScriptやFlutterと比較すると、あまりにも機能追加され無さすぎるようにも見える。究極的には「何と比較するか?」という話だとは思うが、たしかにフロントエンド界隈的な観点ではElmは亀の歩みなのは間違いない。 変化するのはいいことだ... なんとなく肌で感じる人も多い事実として、世の中には"最先端を目指して変化するのはいいことだ"という暗黙的な統一見解が存在して

                    なぜElmは0.19のままか、変化すること/しないこと - Runner in the High
                  • Walk around functional web frontend programming

                    https://opt.connpass.com/event/222709/

                      Walk around functional web frontend programming
                    • Elm at Rakuten | Rakuten Engineering Blog

                      In our team at Rakuten, we have been using Elm1 in production for almost two years now. This post is about our story, the lessons we learned, and our likes and dislikes. This post is quite long so if you prefer to see an overview, feel free to jump to the index. Everything started in the Berlin branch of Rakuten during the summer of 2017. We were maintaining a medium-size single-page application w

                        Elm at Rakuten | Rakuten Engineering Blog
                      • Elmで競技プログラミング(AtCoder)を解いてみよう!(簡単に始められる環境アリ!)

                        皆さんはプログラミング言語を学びはじめのときはどんなふうに勉強をしていますか? いろんな勉強方法があるとは思いますが、競技プログラミングで問題を解くことで言語の書き味を確かめて行くのが効率の良い勉強方法の一つとして挙げられると思います。中でも有名な競技プログラミングのコンテストサイトがAtCoderになります。 それでは早速問題を解いてElmで言語提出・・・あれ? 無い・・・😇 そうです。ElmはWEB開発に特化した言語のため競技プログラミングサービスではサポートされていないのでした・・・。 しかし、安心してください!ElmはAltJSな言語なので、コンパイルすることでJavaScript(Node.js)として提出が可能なのです!色々小細工する必要があるのですが、なんとすぐに競技プログラミングが始められる環境を用意しておきました。 こちらがElmによる競技プログラミング環境になります。

                          Elmで競技プログラミング(AtCoder)を解いてみよう!(簡単に始められる環境アリ!)
                        • 型付けは難しい

                          ベン・フィードラーのブログより。 型検査と型推論 型検査とは、あるプログラミング言語で与えられたプログラムを実行し、すべての変数や式が正しい型を持っているかどうかを調べるプロセスです。例えば、文字列は文字列に代入され、算術式は数値のみを使用するなどです。一部の言語では型推論を提供しており、コンパイラに自分で正しい型を見つけるタスクも提供します。言語の特徴に応じて、型検査と型推論の問題は、些細なものから決定不能なものまで様々です。 一般的な用語 完全性 正しく入力されたプログラムを全てチェックできれば、タイプチェッカーは完了です。 健全性 正しく型付けされたプログラムのみを受け付けるものであれば、型検査は健全です。 決定可能性 任意の入力に対して、その入力が問題を満足するかどうかを有限時間で計算できる場合、決定問題は決定可能です。決定可能な問題の例としては、素数判定や充足可能性などがあります

                          • Amazon.co.jp: プログラミングElm ~安全でメンテナンスしやすいフロントエンドアプリケーション開発入門: Jeremy Fairbank (著), ヤギのさくらちゃん (翻訳): 本

                              Amazon.co.jp: プログラミングElm ~安全でメンテナンスしやすいフロントエンドアプリケーション開発入門: Jeremy Fairbank (著), ヤギのさくらちゃん (翻訳): 本
                            • Elmアプリケーションにおけるモジュールレベルでの詳細設計 - Runner in the High

                              Elmアプリケーションで比較的モジュール多めなアプリケーションの機能開発をするときに同僚とトライしている手法について。 言語的なElmのテクニックみたいな話ではなく、どちらかといえばもっと抽象的なハナシ。 1. 画面からざっくりとモジュールを見つけ出す 基本的に新しく機能を設計するときには画面設計みたいなものがデザインレベルで上がってきているはずなので、それを元に画面を構成するモジュールを分解する。この時点では画面ベースでやる。 自分がエンジニアHubで寄稿したElm記事でも、まずは画面をベースにして主要なモジュールを見つけ出している。 2. モジュールを分類する 見つけ出したElmのモジュールを"TEAなモジュール"と"そうでないモジュール"で分類する。依存関係も見つける。 "TEAなモジュール"とはMsg型とupdate関数を持つTEA的なライフサイクルに乗るモジュール。"そうでないモ

                                Elmアプリケーションにおけるモジュールレベルでの詳細設計 - Runner in the High
                              • Elm at Rakuten

                                lucamug Posted on Jan 25, 2021 • Updated on Mar 4, 2023 • Originally published at engineering.rakuten.today In our team at Rakuten, we have been using Elm1 in production for almost two years now. This post is about our story, the lessons we learned, and our likes and dislikes. This post is quite long so if you prefer to see an overview, feel free to jump to the index. Everything started in the Ber

                                  Elm at Rakuten
                                • なぜ MVVM + FRP は Elm Architecture に勝てないのか - dely Tech Blog

                                  こんにちは、delyでクラシルiOSアプリ開発を担当している稲見 (@inamiy)です。 この記事は「dely #2 Advent Calendar 2020」の25日目の記事です。 dely #1 Advent Calendar 2020 dely #2 Advent Calendar 2020 昨日は、delyのSREチームのjoooee0000(高山)さんによる delyのSREチームがオンコールトレーニングを導入する3つの理由 の記事でした。 オンコール対応できるエンジニア、強くてカッコいい・・・ 私の方からは、メリークリスマス🎄🎅🔔 にふさわしい Elm Architecture による unidirectional なプレゼントをお届けします🎁 (2020/12/26 EDIT: タイトルを「なぜ MVVM は Elm Architecture に勝てないのか」から「

                                    なぜ MVVM + FRP は Elm Architecture に勝てないのか - dely Tech Blog
                                  • TodoMVCで手続き型脳から関数型脳へシフトしてみよう!

                                    Vanilla JS(ES6)で書かれたTodoMVCアプリケーションをまず先に解説し、その次に純粋関数型言語Elmで書いていくにはどのような考え方が必要かを丁寧に解説をしていきます。Elmの入門はもちろんJavaScriptの入門や関数型のエッセンスを学びたいあなたへピッタリの一冊です!

                                      TodoMVCで手続き型脳から関数型脳へシフトしてみよう!
                                    • elm-firestoreでJSを1行も書かずにElmアプリケーションでFirestoreを使う - Runner in the High

                                      この記事はElm Advent Calendar 2020の8日目の記事です 今年の春頃からコツコツと個人開発のアプリケーションで使うためのElm用Firestoreライブラリのパッケージを作っていたので、その紹介をします。 github.com できることはREADMEに書いてあるとおりで、基本的なCRUDオペレーションが一通りサポートされているのと、たぶんトランザクションもかけられます。 また、このelm-firestoreは独自のエンコーダ/デコーダをパッケージのモジュールとして提供しており、Firestoreとの通信で使用される特別なJSONのデータ構造をパッケージの利用者が意識しなくてもよい作りになっています。 READMEにおいて "A type-safe Firestore integration for Elm." と謳っているのは、JSを書かずにFirestoreとの連携

                                        elm-firestoreでJSを1行も書かずにElmアプリケーションでFirestoreを使う - Runner in the High
                                      • GitHub - charmbracelet/bubbletea: A powerful little TUI framework 🏗

                                        The fun, functional and stateful way to build terminal apps. A Go framework based on The Elm Architecture. Bubble Tea is well-suited for simple and complex terminal applications, either inline, full-window, or a mix of both. Bubble Tea is in use in production and includes a number of features and performance optimizations we’ve added along the way. Among those is a standard framerate-based rendere

                                          GitHub - charmbracelet/bubbletea: A powerful little TUI framework 🏗
                                        • Why I'm leaving Elm

                                          Over the past year or so, I've reluctantly come to the conclusion I need to leave Elm and migrate to some other language (most likely Bucklescript via philip2), and I definitely cannot recommend it to anyone else. This post is about my reasons for that, which are mostly about the way in which the leadership behave. I'm not going to talk about the good points of Elm as a technology. You can read th

                                          • GitHub - iced-rs/iced: A cross-platform GUI library for Rust, inspired by Elm

                                            You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                              GitHub - iced-rs/iced: A cross-platform GUI library for Rust, inspired by Elm
                                            • コロナウィルス対策でリモートワークしてみたらReduxやVuexのメリットが分かった - Qiita

                                              ↓次の記事もよろしくやで! 4歳娘「パパ、20歳以上のユーザーを抽出して?」 忘れ物を取りに久々に出社したワイ ワイ「おはようさん」 ハスケル子「おはようございます」 ワイ「なんや、ハスケル子ちゃんしかおらんのかいな」 ハスケル子「はい」 ハスケル子「みなさんリモートワークです」 ワイ「コロナウィルスのせいで基本出社禁止やもんなぁ」 ワイ「通勤せんでいいのは楽チンやけど」 ワイ「みんなに会ってバカ話ができなくて寂しいわぁ・・・」 ハスケル子「やめ太郎さん、あんまり近づかないでください」 ハスケル子「こっち向いて喋るのもやめてください」 ワイ「おお、失礼失礼」 ワイ「もしウィルス感染してたら、うつってまうもんな」 ハスケル子「いえ、単純に口が臭いんです」 ワイ「Oh...」 ワイ「ごめんやで...」 リモートだと、井戸端会議が聞けなくて困る ワイ「なんか、リモートって結構やりにくくない?」

                                                コロナウィルス対策でリモートワークしてみたらReduxやVuexのメリットが分かった - Qiita
                                              • ElmでBrowser.elementを使いつつルーティングを自前で作る - Runner in the High

                                                一般的にElmでルーティングを行うSPAを作る場合にはBrowser.applicationを使って、組み込みのルーティングの機構を使うことになる*1。しかし、一方でルーティングの仕組みを持たないBrower.elementやBrowser.documentでも、ルーティングをJavaScriptサイドで自前実装する方法がある。 elementを使いつつルーティングを自作したいユースケースとして、ReactやVue.jsと統合してElmを使いたいケースが挙げられる。applicationやdocumentを使うと特定のDOMのみにElmアプリケーションをマウントすることができないため、他のフレームワークと共存させることができない。 なお、elm/browserのリポジトリにも「Browser.elementでルーティングをするにはどうすればよいか」を説明した詳しいドキュメントがある。 gi

                                                  ElmでBrowser.elementを使いつつルーティングを自前で作る - Runner in the High
                                                • [Web フロントエンド] Elm に心折れ Mint に癒しを求める | Kabuku Developers Blog

                                                  こんにちは、 Elm Elm – A delightful language for reliable webapps https://elm-lang.org/ はじめに · An Introduction to Elm (Elm 公式ガイド日本語訳) https://guide.elm-lang.jp/ Elm は関数型の小さな言語仕様を持つ altJS です。 Redux が影響を強く受けた ことでも有名ですね。 “No Runtime Exceptions” は魅力的ですし、何より興味深いのは The Elm Architecture です。 Redux にはあまりセンスを感じられなかったのですが、 The Elm Architecture はとても良さげに見えました。 Elm が持つ 代数的データ型 と パターンマッチ、状態の不変性、 レコードの部分更新式 などとうまく馴染み、簡

                                                    [Web フロントエンド] Elm に心折れ Mint に癒しを求める | Kabuku Developers Blog
                                                  • Elm入門と実践 - 買い物カートを作ってアーキテクチャ「TEA」を学ぶ - エンジニアHub|Webエンジニアのキャリアを考える!

                                                    このTEAは、関数型FluxライブラリであるReduxの思想に影響を与えたことで知られています。 TEAは現代のフロントエンド・アプリケーションを開発するにあたってのベストプラクティスを踏襲しており、「Elmまかせ」でアプリケーションを作ることでが、スケールするアプリケーションを開発するための最短ルートととなるように作られているのです。 ECサイトの商品カート機能をElmで作ってみよう さて、ここからは手を動かしながら、Elmのエッセンスをお伝えしていきたいと思います。ElmによるTODOアプリやカウンタアプリのサンプルは、Elmの公式ページやさまざまなブログ、書籍などで比較的よく見られますが、もう少し大きな規模でのElmのアプリケーションのコードを見る機会は多くはありません。 最も実践的なアプリケーションのサンプルとしては、NoRedInk社のリチャード・フェルドマンによるmediumの

                                                      Elm入門と実践 - 買い物カートを作ってアーキテクチャ「TEA」を学ぶ - エンジニアHub|Webエンジニアのキャリアを考える!
                                                    • 未知のプログラミング言語を導入してでも、成したかったエンジニア組織づくりへの挑戦|Fringe81 『Be an Explorer~探検家たれ~』

                                                      こんにちは。Fringe81 note チームの横山です。 今回は、Fringeのエンジニア組織づくりのお話です。 Fringeの技術開発本部長である関が挑んだ「壁のないエンジニア組織づくり」について、関に振り返ってもらいました。ぜひ、ご覧ください! (関の紹介は以下の記事をご覧ください) +++ プログラミング言語が境界性となり「技術の壁」が生まれるこんにちは。Fringe81の関です。 僕は最近、技術開発本部長として、組織の目標管理や制度整備などを仕事としていますが、これまでの数年はフロントエンドのスペシャリストという役割を担ってきました。 スペシャリストというと「技術の細かいことがわかる専門家」という風に見られることが多くて、それは間違っていないのですが、僕が意識していたのは「組織をよくする」ことでした。つまり、技術開発本部長であったり、スペシャリストであったりと役割は変わっても、大

                                                        未知のプログラミング言語を導入してでも、成したかったエンジニア組織づくりへの挑戦|Fringe81 『Be an Explorer~探検家たれ~』
                                                      • 実例によるPureScript

                                                        目次に戻る 第1章 はじめに1.1 関数型JavaScript関数型プログラミングの手法は、かねてよりJavaScriptでも用いられてきました。 UnderscoreJSなどのライブラリは、 mapや filter、 reduceといったよく知られた関数を活用して、小さいプログラムを組み合わせて大きなプログラムを作れるようにします。 var sumOfPrimes = _.chain(_.range(1000)) .filter(isPrime) .reduce(function(x, y) { return x + y; }) .value(); NodeJSにおける非同期プログラミングでは、第一級の値としての関数をコールバックを定義するために多用しています。 require('fs').readFile(sourceFile, function (error, data) { if

                                                          実例によるPureScript
                                                        • Freeモナドのしくみ - Qiita

                                                          Freeは、Functorを受け取ってMonadをつくることができるモナドです。 Freeのデータ型の定義は以下です。 よくわからない再帰的な定義がされていますね。初見で読めたらすごいと思います。 この記事では、上の定義のようなFreeがどのようにMonadをつくるかを見ていきます。 次のような順で説明していきます。 PureScriptの予備知識と用語説明 ListについてFunctor / Monadを実装する Free fについて、同じようにFunctor / Monadを実装する Free fだけでなく、Freeそれ自体もモナドではあるんですが、1つ高いレイヤー(誤魔化した言い方)でのモナドなのでこの記事では触れません。 PureScriptの型システムでは表現できないですしね。 忙しい人のためのFree この記事で説明したいことをひとことで言うと、 Pureがpure、Freeが

                                                            Freeモナドのしくみ - Qiita
                                                          • Zipperとは - Qiita

                                                            Zipperというデータ構造について、図を使ってわかりやすく解説したいと思います。 この記事ではZipperがどういったものかは説明しますが、それがどう応用されうるかは紹介しません。 応用例については、少し長いですが以下の記事がわかりやすかったです。 Haskell/Zippers - Wikibooks また、ComonadとしてのZipperの応用例は、以下の記事がとてもわかりやすかったです。 コモナドを使った抽象化の威力をライフゲームで試してみた - Qiita ただ、Haskellは遅延評価で、PureScriptは正格評価なので、この記事とは実装がところどころ異なります。 サンプルコードはPureScriptですが読めなくても図さえ見れば理解に大きな支障はないと思います。 これは余談ですが、シンタックスハイライトの関係で```haskell ... ```でコードブロック書いてる

                                                              Zipperとは - Qiita
                                                            • テストしやすい「純粋」な関数とは? - Qiita

                                                              とある日の弊社にて ハスケル子「やめ太郎さん、今日は何してるんですか?」 ワイ「おお、今日はな」 ワイ「JavaScriptでお正月判定関数を書いてんねん」 ハスケル子「お正月判定関数・・・」 ワイ「せや」 ワイ「株式会社ブラックはんから、こんな依頼をもらったからな」 お世話になっております。 株式会社ブラックの暗井 暗人(くらい・あんと)です。 2020年の元日に弊社Webサービスのメンテナンスを行いますので、 元日の間のみ画面上に「ただいまメンテナンス中です」と表示する機能を実装していただきたいです。 予算は800万円までに抑えていただけると幸いです。 ワイ「システムのメンテナンス作業自体は、ブラックはんの方でするみたいなんやけど」 ワイ「お正月判定関数だけがどうしても作られへんらしく、弊社に依頼が来たという経緯や」 社長「(相変わらず設定メチャクチャやな・・・)」 ハスケル子「ちょっ

                                                                テストしやすい「純粋」な関数とは? - Qiita
                                                              • 4歳娘「パパ、実行時エラーの出ないフロントエンド言語ってなーんだ?」 - Qiita

                                                                とある休日の朝 娘(4歳)「パパ、最近はお仕事でどんなWebサイトを作ってるの?」 ワイ「ん?詳しくは言えへんけど、技術記事投稿サイトや」 娘「Qiitaのパクリみたいなやつ?」 ワイ「ハッキリ言うなや」 娘ちゃんはなぞなぞがしたい 娘「それよりパパ、なぞなぞしよ」 ワイ「ええで」 娘「じゃあ行くよー」 娘「実行時エラーの出ないフロントエンド言語ってなーんだ?」 ワイ「いやどんななぞなぞやねん」 ワイ「っていうか、どんな言語でも実行時エラーは出るやろ」 ワイ「例えばさっきの技術投稿サイトで」 ワイ「最新記事を1件表示しようとした場合...」

                                                                  4歳娘「パパ、実行時エラーの出ないフロントエンド言語ってなーんだ?」 - Qiita
                                                                • Elmの型で読むReduxやVuexのアーキテクチャ - Qiita

                                                                  はじめに 近年徐々に複雑になるwebフロントエンドの状態管理の仕組みとして、ReactやVue.jsといったwebフロントエンドフレームワークのお供にReduxやVuexと言ったライブラリを組み合わせて使うことが多いと思います。 それら二つのライブラリは、Elmという高品質webフロントエンド構築のための関数型AltJSが用いているThe Elm Architectureと呼ばれるアーキテクチャに影響を受けて作られました。 追記: ReduxとElmの時系列はReduxの方が先であり、しかしながら状態のimmutableなどは影響を受けていることから、 現在の形のReduxはElmに影響を受けている所がある。 という表現が正しかったようです。 コメントありがとうございます。 参考 Vuexとは何か?|Vuex reduxjs / redux Elmの型システムや見た目は非常にリーダブルであ

                                                                    Elmの型で読むReduxやVuexのアーキテクチャ - Qiita
                                                                  • ElmでPhantom TypeとExtensible Recordを用いて型安全な状態遷移パターンを実装する - Runner in the High

                                                                    このDiscourseスレッドがかなり面白かった。 OPは「幽霊型(Phantom Type)を使うと特定の順序でしか型安全に状態遷移できないように実装できると思うんだけど、どうしたらいいかな?」と質問している。 discourse.elm-lang.org 実装してみる 回答者からのアイデアによると、Phantom TypeとExtensible Recordを組み合わせて実装することで型安全な状態遷移が作れる。 たとえば、以下のようなゲーム上での状態遷移のパターンが仕様としてあるとしよう。 これを実際に今回のパターンで表現すると、このようになる。 type Transition a = Transition type Allowed = Allowed type Game = Loading (Transition { ready : Allowed }) -- ロード中 | Read

                                                                      ElmでPhantom TypeとExtensible Recordを用いて型安全な状態遷移パターンを実装する - Runner in the High
                                                                    • Elmをプロダクトで一年書き続けた感想 - Runner in the High

                                                                      この記事はElm Advent Calendar 2019最終日の記事です。 去年末あたりから現職のチームでElmを書き始めたので、大体1年程度はプロダクションでElmのコードを書き続けたことになる。学生時代はRubyとJavaScriptばっかりだったので、関数型プログラミングとかそういうバックグラウンドは一切なかった。その観点から、改めて率直な感想を申し上げておく。 なお、弊社フロントエンドチームとElmに関するはなしは、私の書いたFringe81アドベントカレンダーの記事を参照のこと。 fringeneer.hatenablog.com Elmには中毒性がある Elmを触ったことのない方からすると「?」になるかもしれない(というか、昔の自分がそうだった)が、率直に言ってElmには中毒性がある。一度Elmを知ると、Elm以外の言語を触るたびに「これ、Elmだったら〇〇なのにな〜」と思う

                                                                        Elmをプロダクトで一年書き続けた感想 - Runner in the High
                                                                      • なぜReactでもVueでもなくElmを使っているのか - Qiita

                                                                        Functional-Static-Strong-Managed −0.25 (0.04) ∗∗∗ Functional-Dynamic-Strong-Managed −0.17 (0.04) ∗∗∗ Proc-Static-Strong-Managed − 0.06 (0.03) ∗ Script-Dynamic-Strong-Managed 0.001 (0.03) Script-Dynamic-Weak-Managed 0.04 (0.02) ∗ Proc-Static-Weak-Unmanaged 0.14 (0.02) ∗∗∗ 各カテゴリに属する言語は以下のとおりです。 Functional-Static-Strong-Managed: Haskell、Scala Functional-Dynamic-Strong-Managed: Clojure、Erlang Proc-Sta

                                                                          なぜReactでもVueでもなくElmを使っているのか - Qiita
                                                                        • 図解 The Elm Architecture の流れ - Qiita

                                                                          はじめに The Elm Architecture は、コードの再利用性・テストのしやすさに優れた設計パターンです。 しかし、Elm に慣れていない人にとっては、The Elm Architecture がどのような流れで実行されていくのか、想像しづらいかもしれません。 本記事では、 The Elm Architecture の処理の流れを、Elm Guide(日本語訳版) の例に沿って説明していきます。 先に以下の記事で、The Elm Architecture を触っておくとより理解が進むかもしれません フワッとわかった気になるElm入門 The Elm Architecture の処理の流れ 上記の図だけではわかりにくいので、Elm Guide ボタンの例に沿って具体的に説明していきます。 例: ボタン ボタンとカウンターに 0 と画面に表示されてから、ユーザーが [+] ボタンを押

                                                                            図解 The Elm Architecture の流れ - Qiita
                                                                          • PureScript 入門 のそのまえ - エフアンダーバー

                                                                            QiitaでPureScriptを始めるのに苦戦している記事を読んで、 自分もこの前すごく苦労したことを思い出したので、 まだ感覚が残っているうちにいろいろ書いておくことにしました。 PureScriptの紹介が目的ではないので、 「PureScriptとは何か」とか「どんなコードを書くか」みたいな話は特にしません。 PureScriptを学ぶ上で知っておくと役に立つかもしれない知識について雑多に書くだけです。 PureScriptを始めるその前に PureScriptは比較的新しい言語で、かつ今のところ非常にマイナーな言語です。 そのため、現在資料がとても乏しく、いくらかき集めても、 関数型言語を何も知らない人間が理解するのは困難な状況です。 そこで、まず最初にやるべきはPureScriptの類似言語を学ぶことだと思います。 遠回りに感じるかもしれませんが、おそらくこちらの方が近道です。

                                                                              PureScript 入門 のそのまえ - エフアンダーバー
                                                                            • ヤギと振り返る恥ずかしいコード -- 次のレベルに上がるために - Qiita

                                                                              これまで未婚の父として娘のヤギさくらちゃんを育ててきましたが、2日後に命を奪う決断をしました。 (12/3(火) 14:22 さくらちゃんは旅立ちました) ある日、突然目が見えなくなり、次の日には立つことができなくなっていました。 自由にならない体にもどかしさを感じ、目が見えない恐怖にのたうち回りながら 体をぶつけ、顔をぶつけ、歯も折れてぼろぼろになってしまいました。 信頼できる獣医さんの愛にあふれた治療の結果、危篤状態は免れたものの 根本的な回復にはいたらず、2週間の介護を経て安楽死の判断をしました。 1月生まれで間もなく3歳でしたが、その日を迎えることはありません。 人間で言えば18歳くらいでしょうか。 人間の都合で親や兄弟と引き離し、最後は自分の意志とは関係ない第三者によって命を奪われる。 死後は一面のきれいなお花畑で、仲間たちとお花を片っ端からむしゃむしゃ根こそぎ貪り食って過ごして

                                                                                ヤギと振り返る恥ずかしいコード -- 次のレベルに上がるために - Qiita
                                                                              • Loading...

                                                                                  Loading...
                                                                                • Elmに興味があるなら見ておきたいIzumiSyのスライド3選 - Runner in the High

                                                                                  過去に「NoRedInk*1の筋肉の人」としておなじみリチャード・フェルドマンをフィーチャーする記事を書いたので、今度は自分をフィーチャーしようと思う。 www.izumisy.work おすすめはやはり一番最後の「jQueryからElmまで」だが、正直このスライドはElmに関する説明成分が少なかったと反省しているところがある。なので、個人的にはこの記事で並べている順番に見てもらうほうが、Elmに対するわかりが生じやすいと思う。 Elm, the functional frontend Elmの基本的な部分をざっくり説明するスライド。このスライドは関数型プログラミングカンファレンス2019で使った。Elm意外にもRustやElixirなどの関数型プログラミングのエッセンスを持つ言語の人たちとコラボレーションするタイプのイベントだったので、関数型的な部分に言及するのは少なめでElmの良さをア

                                                                                    Elmに興味があるなら見ておきたいIzumiSyのスライド3選 - Runner in the High