タグ

関数型に関するSWIMATH2のブックマーク (6)

  • Akka でステートマシンを処理 - なんとなくな Developer のメモ

    前回 の有限ステートマシン(FSM)の処理を Akka の JavaAPI を使って実装してみます。 Akka 2.5.6 ソースは http://github.com/fits/try_samples/tree/master/blog/20171016/ ステートマシンの実装 まずは、以下のステートマシンを実装します。 初期状態は Idle 状態 Idle 状態で On イベントが発生すると Active 状態へ遷移 Active 状態で Off イベントが発生すると Idle 状態へ遷移 現在の状態 Off On Idle Active Active Idle AbstractFSM<状態の型, データの型> を extends する事でステートマシンを実装します。 状態以外にも状態のデータを指定できるので、Active 状態へ変化した回数をカウントするようにしてみました。 指定

    Akka でステートマシンを処理 - なんとなくな Developer のメモ
  • 純粋関数型データ構造 (0)

    はじめに 関数型言語スキーの皆様,趣味でも仕事でも関数型されてますでしょうか? 関数型言語の強力な特徴の一つとして不変性が挙げられます.不変性においてはletやIOモナドが注目されがちですが,真に不変性を下支えしているのは関数型言語のライブラリに含まれているListやMapといったデータ構造です.これら関数型データ構造について記述された古典が「Purely Functional Data Structures」です.これらに記述されてるデータ構造について実装と解説を書く,というのが稿の目指すところです. 関数型データ構造とは? 正確な定義については,MITの講義ビデオ など見て欲しいのですが,重要な特徴として,全ての関数型データ構造では,操作を行う前の古い版と,操作後の新しい版の,両方が維持される点が挙げられます.(これを永続性(Persistency)と呼びます.ややこしいことに永続性

    純粋関数型データ構造 (0)
    SWIMATH2
    SWIMATH2 2017/04/29
    省メモリな永続的データ構造のF#での実装。面白い
  • 箱で考えるFunctor、ApplicativeそしてMonad

    モナドについて勉強していて見つけた英語記事を翻訳してみました。 誤訳等あれば編集リクエストやコメントください 原文: Functors, Applicatives, And Monads In Pictures - adit.io ここに単純な値(value)があります。

    箱で考えるFunctor、ApplicativeそしてMonad
  • Why are functors, applicative functors and monads important/advantageous in functional programming? (not looking for a definition)

    SWIMATH2
    SWIMATH2 2017/03/03
    何でモナドとかが必要になるのか。分かりやすい。
  • jQueryはモナドだ - id:anatooのブログ

    この記事はjQuery is a Monad | Important Shockという記事の勝手訳です。 追記1: bonotakeさんが補足記事を書いてくれています → JQueryがモナドかどうかとか - たけをの日記@天竺から帰ってきたよ 追記2: hirataraさんが補足記事を書いてくれています → jQueryは当にモナドだった - 北海道苫小牧市出身のPGが書くブログ Haskellプログラマーは誰しもがモナドに関する各々のチュートリアルを書くと言われる。というのも、一度モナドの定義とその可能性を理解すれば、モナド全体を囲む神秘性に挑戦して打ち破るのが容易になるからだ。門外漢からすれば、モナドはHaskellを真に理解することを妨げる不可解な障壁だ。モナドはとても不適当な名前で呪われていて、一風変わった文法を持ち、一度に何もかもやってしまう様に見える。しかしながら、その動き

    jQueryはモナドだ - id:anatooのブログ
    SWIMATH2
    SWIMATH2 2016/12/12
    モナドってすげー
  • JavaでMonadをはじめからていねいに :: Igreque -> Info

    JavaでMonadをはじめからていねいに by Yuji Yamamoto on August 28, 2016 「モナドについてSwiftで説明してみた」という記事などで指摘されているように、プログラマー向けにMonadを説明した記事はサンプルがHaskellで書かれていることが多いので辛いですよね。 HaskellではMonadは「ないと文字通りプログラムが書けないぐらい」大事なもので、入出力処理や例外処理、ダイナミックスコープのシミュレーション、非決定計算など、普通の関数では難しい、非常に様々な機能の実装に使用されています。 その一方、MonadはC言語のポインターに並んでHaskellを学ぶ上での障害である、なんて言われたりもするとおり、他言語ユーザーからHaskellを敬遠させる大きな要因の一つともなっています。 そんな悲しい現状を少しでも改善するために、上記の記事を参考にしつ

  • 1