タグ

functionalに関するkazutanakaのブックマーク (12)

  • F# を推したい

    はじめに F# というプログラミング言語があります。世に出てからしばらく経つ[1]のですが、あまり流行っていませんし、流行る兆しも微妙な感じです[2]。F# は他のモダンな言語にも引けを取らないくらい魅力的で痒いところに手が届く言語なのですが、いかんせん知名度が低いのです。記事では、そんな不遇言語である F# を推したいと思います😌 F# って何? F# はマイクロソフトが開発した .NET 向けのマルチパラダイムプログラミング言語である。 (引用: Wikipedia) 要約すると、スクリプト言語でありコンパイル言語でもある、関数型プログラミングもオブジェクト指向プログラミングもサポートする、クロスプラットフォーム対応のプログラミング言語です。 PythonRuby のようなスクリプト言語としても、 JavaC++ のようなコンパイル言語としても扱うことができます。関数型

    F# を推したい
  • 【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary

    original: The introduction to Reactive Programming you've been missing (by @andrestaltz) (translated by @ninjinkun, reviewed by @ma0e) あなたはリアクティブプログラミングと呼ばれる新しい方法が気になっている。 勉強するのは大変で、良い教材がないのでさらに難しい。私が勉強を始めたときは、まずチュートリアルを探した。見つけたのは一握りの実践的なガイドだけ、しかもそれらは表面をなぞっているだけで、リアクティブプログラミングのアーキテクチャ全体像を構築しようとしてはいなかった。ある関数を理解するのに、ライブラリのドキュメントは役に立たないことがある。 これを見て欲しい。 Rx.Observable.prototype.flatMapLatest(selector,

    【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary
  • The Unlambda Programming Language

    Unlambda: Your Functional Programming Language Nightmares Come True Table of contents What's New in Unlambda World? Introduction What is Unlambda? What does Unlambda look like? What are the principles of Unlambda? Links and meta-links to other obfuscated programming languages Tutorial Functions and application Combinators Abstraction elimination Making abstraction elimination more efficient More U

  • Read PureScript by Example | Leanpub

    require('fs').readFile(sourceFile, function (error, data) { if (!error) { require('fs').writeFile(destFile, data, function (error) { if (!error) { console.log("File copied"); } }); } }); Libraries such as React and virtual-dom model views as pure functions of application state. Functions enable a simple form of abstraction which can yield great productivity gains. However, functional programming i

  • Rust for functional programmers

    This post follows up on OCaml for Haskellers from Edward Z. Yang (2010) and my own Haskell for OCaml programmers from earlier this year. Note The latest version of this document can be found online at https://dr-knz.net/rust-for-functional-programmers.html. Alternate formats: Source, PDF. Prologue Rust for C programmers != Rust for functional programmers. For experienced C programmers with little

    Rust for functional programmers
  • Java 再帰的ジェネリクス - Qiita

    参考資料 先人の足跡 http://blogs.wankuma.com/nagise/archive/2008/05/25/139308.aspx http://d.hatena.ne.jp/Nagise/20101101/1288629634 標準APIでの実装例 この人とか この人がそうです。 Enum<E extends Enum<E>> BaseStream<T,S extends BaseStream<T,S>> 使いみち 継承関係にあるクラスでの自然なメソッドコールチェイン実装 class RecursiveGenerics { public static class Parent<T extends Parent> { @SuppressWarnings("unchecked") protected T self() { return (T) this; } private

    Java 再帰的ジェネリクス - Qiita
  • adventures in uncertainty: An Introduction to Recursion Schemes

    2014-02-15 In 1991, Erik Meijer, Maarten Fokkinga, and Ross Paterson published their now-classic paper Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire. Though this paper isn’t widely known outside of the functional programming community, its contributions are astonishing: the authors use category theory to express a set of simple, composable combinators, called recursion sch

  • Neural Networks, Types, and Functional Programming -- colah's blog

    An Ad-Hoc Field Deep learning, despite its remarkable successes, is a young field. While models called artificial neural networks have been studied for decades, much of that work seems only tenuously connected to modern results. It’s often the case that young fields start in a very ad-hoc manner. Later, the mature field is understood very differently than it was understood by its early practitione

  • 再帰関数のスタックオーバーフローを倒す話 その1 - ぐるぐる~

    再帰関数のスタックオーバーフローを倒す話を何回かに分けてします。 連載目次 再帰関数のスタックオーバーフローを倒す話 その1 ← 今回 CPSとCPS変換の話 再帰関数のスタックオーバーフローを倒す話 その1.5 F#での「末尾」についての話 再帰関数のスタックオーバーフローを倒す話 その2 .NETにおける末尾最適化の方法についての話 再帰関数のスタックオーバーフローを倒す話 その2.5 継続モナドと、F#の残念さの話 再帰関数のスタックオーバーフローを倒す話 その3 すべてをあきらめて再帰をwhileに書き直す方法の話 はじめに 継続渡しスタイルもしくは継続渡し形式(Continuation Passing Style、以降CPS)という言葉を聞いたことがあるでしょうか。 今日はCPSの話をします。 前提知識は、F#のみです。 継続とは CPSの前に、まずは継続の話です。 継続と言って

    再帰関数のスタックオーバーフローを倒す話 その1 - ぐるぐる~
  • Practical Scheme

    Shiro Kawai まだ下書き Schemeの特徴をあげるときに、「継続」や「call/cc」が出て来ないことはない。 でも、R5RSのcall/ccの項をいくら読んでも、どうもよくわからない。 call/ccを使えばC言語のbreakみたいなのとか、コルーチンとかいう スレッドもどきとかが書ける、というのはわかったけど、一体そういうのが書けて 何が嬉しいのか、そこんとこがピンと来ないんだ。 今、そこにある継続 プログラミングの世界の概念には、禅の公案のようなものがある。 それを説明する文章はほんの一文なのに、最初に目にする時、 その文は全く意味をなさない、暗号のように感じられる。 だがひとたびその概念を理解すると、 その概念の説明は確かにその一文で説明されているのがわかるのだ。 そんな、「分かれば分かる」という禅問答の中でも 「継続」は最も謎めいたものの一つと言えるだろう。 文献を紐

    Practical Scheme
  • 人でもわかる型推論 - Qiita

    追記: この記事を書いてから早2年弱。今は数式のほうがわかりやすいなあと思うようになりました。 これは何? この記事は、最近 Hindley Milner (Algorithm W) 型推論を理解したばかりの私が、型推論のことをなるべくわかりやすく解説するものです。 簡略化したOCamlのようなコードが登場します。 わかりやすさ重視で書いていくつもりなので、専門用語(自由変数とか)はあまり出てきません。 間違いなどあったらコメントしていただけると幸いです。 まずは単相から ここからは図を使って説明していきます。(ビジュアルなほうがわかりやすいハズ) とても簡単な例 以下にとても簡単なコードを示します。 見ればわかりますが、xの型はintですね。 ですが、どのようにしてintだとわかったのでしょうか。 すでにわかっていることを書き出しだしてみました。リテラルの右肩を見てください。 1の型は当

    人でもわかる型推論 - Qiita
  • The Expression Problem - maoeのブログ

    この記事はHaskell Advent Calendar jp 2010 : ATND向けに書いたものです。 最近、ふらふらとネットの波をさまよっていたら、Channel 9でRalf LaemmelさんがHaskellの型クラスを解説する動画を見つけました。これです。 C9 Lectures: Dr. Ralf Lämmel - Advanced Functional Programming - The Expression Problem | Going Deep | Channel 9 C9 Lectures: Dr. Ralf Lämmel - Advanced Functional Programming - Type Classes | Going Deep | Channel 9 The Expression Problemと呼ばれるプログラミングにおける古典的な問題をネタに

    The Expression Problem - maoeのブログ
  • 1