タグ

関数型言語に関するthondaのブックマーク (3)

  • 関数型言語のウソとホント - Qiita

    追記 こんな記事を読むより、まともな関数型プログラミング言語を使ってまともに関数型プログラミングを学ぶほうが、関数型プログラミングについてよほど正確な理解を得られます。少しでも関数型プログラミングに興味のある人は、まずは真面目なHaskellの教科書やすごいHを読んだり、やさしいHaskell入門を読んだりしながら、実際に関数型プログラミングのコードを書いてみることをお勧めします。 繰り返しますが、この記事はあんまり読む必要はないです。関数型プログラミングを理解するには実際に自分でコードを書いてみるのが一番です。関数型プログラミングあるいは関数型プログラミング言語を理解するもっとも確実な方法は、Haskellをあなたのマシンにインストールして何かまとまったアプリケーションを書いてみることです。Haskellでアプリケーションが書けたら、自分は関数型プログラミングを理解しているし使えると胸

    関数型言語のウソとホント - Qiita
  • Pythonのlambdaだけで、Schemeのcond(条件分岐)っぽいものを実装する長い道のり - Line 1: Error: Invalid Blog('by Esehara' )

    はじめに 最近はずっとScheme(いわゆるLispの方言)とかそういうのをいじっていたせいなのか、「あー、関数型っぽく考えてえなあ」という、いわゆる関二病(関数型言語を勉強して二ヶ月目にかかる病気)になってしまっていた。で、そういった「関数型」によくあるアプローチをPythonで書き直した場合は、どういう形になるのだろうか、と思ったので、興味がてら、幾つかのサンプルを書いてみる。最初に、condを実装してみようと思う。 ちなみに、同じようなことを過去に考えていた人はいたようで、fn.pyという名前で公開されていたりします。 実装 例えば、今から階乗を算出する関数を定義してみます。この場合、関数を定義するのに、lambdaだけしか使えない、という縛りをつけます。もちろん、既存の階乗を求める関数を使ってもいけない、とします。 まず、単純に関数のテンプレートを考えてみます。関数のテンプレートは

    Pythonのlambdaだけで、Schemeのcond(条件分岐)っぽいものを実装する長い道のり - Line 1: Error: Invalid Blog('by Esehara' )
  • 数理科学的バグ撲滅方法論のすすめ 第4回 関数型言語とオブジェクト指向,およびOCamlの"O"について

    関数型言語とオブジェクト指向は相容れない,という説をよく聞く。たしかに「オブジェクトは状態を持つ」「関数型プログラミングでは,できるだけ破壊的代入を行わない」とすれば,二つの概念は矛盾しているようにも思われる。また,技術的観点以外にも,「とかくシンプルさを好む多くの関数型言語プログラマが,何かと物事を複雑にする(と思われている)オブジェクト指向を嫌っている」という面があるかもしれない。 しかし,個人の好き嫌いはさておき,実際問題として,関数型言語とオブジェクト指向は大いに関係がある。むしろ,基礎理論については,ほとんど同じコミュニティの人たちが取り組んでいる,と言ってもいい。例えば,以下のような研究が,1980年代から現在に至るまで行われている。 関数型言語のモデルであるλ計算という体系において,オブジェクトを表現する研究(参考リンクなど) λ計算にならい,(プロトタイプベースの)オブジェ

    数理科学的バグ撲滅方法論のすすめ 第4回 関数型言語とオブジェクト指向,およびOCamlの"O"について
  • 1