Adds two numbers (or strings). Equivalent to a + b but curried. Returns: result of a + b. Example var increment = R.add(1); increment(10); //=> 11 R.add(2, 3); //=> 5 R.add(7)(10); //=> 17
前回から一年以上が経過しているけど、最近lambda_driver.gemに機能を追加したので、そのことについて書こうと思う。 Rubyで、モナ……っぽい関数合成を実装した話だ。 Rubyで関数合成とかしたいので lambda_driver.gem というのを作った - ( ꒪⌓꒪) ゆるよろ日記 関数合成 関数合成については以前に書いたので、こちらを見て欲しい。 「関数型Ruby」という病(2) - 関数合成 Proc#compose - ( ꒪⌓꒪) ゆるよろ日記 おさらいをしておくと、関数合成とは、 関数gと関数fから、g(f(x))という関数hを新たに作り出すことだ。 (g ∘ f)(x) = g(f(x)) 関数gと関数fの合成関数g ∘ fに引数xを渡した結果は、関数gにf(x)の結果を渡したものと等しい。つまり、このような操作である。 f = lambda{|x| x + 1
Java 8を関数型っぽく使うためのおまじない - きしだのはてな Java 8を関数型っぽく使うためのおまじないをC#でやってみた - ぐるぐる~ Java も C# も大変ですね。 F# さんは、ラムダ式も関数型も最初から使えたので、似たようなことはすでにできます。 上記の記事のパクリなので、上記の記事をまずは読んでから読むことをおすすめします。 関数型(関数を表す型の方) F# では FSharpFunc という型があります。名前空間や型パラメータまで含めると、Microsoft.FSharp.Core.FSharpFunc<'T, 'U> です。 ただ、この型を直接使うことはありませんし、見ることもそうそうないです。 その代わりに、'T -> 'U という表記が使えます。「'T を受け取って 'U を返す関数」と読みます。 ちなみに、型パラメータの最初に「'」が付いているのが割と大
Kota Mizushima (on a diet) @kmizu デブサミ2013の「こわくない関数型言語」の登壇者がアカデミックな背景持ってる人が多くて、これは「こわい関数型言語」になるのでは、というのが某所で流れてた件について。や、何もないですけど、 2013-02-10 14:52:51 takesako (y0sh1) @takesako 明日のデブサミ2013で【14-B-7】「こわくない関数型言語」のパネルディスカッションを17:45~開始します。参加する方しない方どちらも #kowakunai で「関数型言語のこわそうな部分」につぶやいていただけないでしょうか。 http://t.co/bNpKirCC 2013-02-13 13:51:59
友人曰く、functional lensなるものがあるらしい、調べよ! との事で、調べてみた。 Lenses←ここの記事が参考になりました。 読んだところ、C#でいうところの、get,setと同様の機能をより関数型に実装したものがLensのようです。 例えば、あるデータを一まとめにしたタプルがあるとします。 その場合、getやsetは次のように書けます。 --get --tuple getC (_,_,c,_,_,_) = c --data getX d = x d --set --tuple setB b' (a,b,c,d,e,f) = (a,b',c,d,e,d) --data setX x' d = d {x = x'} これは私も何度か使用した書き方です。 タプルの場合では、タプルのもつ要素数が増えるに従いあほらしくなります。それを回避するために導入されたのが代数的データ型であり
Nemerle is a general-purpose, multi-paradigm programming language for the .Net platform. It is as easy to learn and use as C# or VB.NET but Nemerle is by far more powerful. One may start using it as an advanced C# and then, as learning goes on, employ a range of cool features enabling metaprogramming and functional programming. The metaprogramming is based on macros bearing some similarity to Lisp
1. 函数プログラミングの集い2011 チュートリゕル 「モナドについて」 株式会社 Preffered Infrastructure 田中 英行 tanaka.hideyuki@gmail.com 2. 自己紹介 • 田中英行 (@tanakh, id:tanakh) • 株式会社 Preferred Infrastructure (PFI) 勤務 – 検索エンジンのゕルゴリズムとか作ってます • Haskell (2004~) • C++ (1998~) • BASIC (1992~) • プログラミングコンテスト愛好家 – ICPC, ICFPC, CodeJam, TopCoder, …
A presentation of various aspects of functional programming using Clojure
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く