関数型言語 単語


ニコニコ動画で関数型言語の動画を見に行く

カンスウガタゲンゴ

これはリビジョン 2320561 の記事です。
内容が古い・もしくは誤っている可能性があります。
最新版をみる

関数型言語とはプログラミング言語の一カテゴリ。書き込みできるメモリを持たず、全ては関数で作られるという世界観を持つ。 

広い意味では、関数型の世界観を基調としつつ、時々ズルしてメモリを使う言語も含む。

 概要

チューリングマシン系の言語(手続き型言語)では、プログラム=関数+メモリ空間だが、関数型言語は本当に関数しか使わない。でもちゃんとチューリング完全。

CとかJavaとかしか知らない人間から見ると摩訶不思議だが、単にメモリがメモリに見えないというだけで、持続的な記憶自体は「実行文脈」という形で存続している。

ピュアな関数型としてはHaskellが有名。Lisp、MLなんかはズルするクチ。

一覧

関数型言語というのは、「数学的」関数を扱う言語であり、数学的関数とは副作用を認めず、必然的に参照透過となる。しかし、それでは実行結果の表示すらすることができないので、何らかの妥協が必要になる。この妥協の仕方で純粋関数型言語と非純粋関数型言語に分かれる。

純粋関数型言語

純粋関数型言語は、副作用が混じらず純粋である。副作用はモナドなどの機構を用いて純粋部分から分離されている。

  • Haskell
  • Clean

非純粋関数型言語

一方、非純粋関数型言語では、多少の制約を受けるものの厳密な分離を行わなくても副作用を扱うことができるようになっている。

  • Scheme
  • OCaml
  • F#
  • Clojure
  • Swift
  • Erlang

関数型プログラミング可能な言語

Lispは関数型言語の元祖だが、後続の言語に比べると厳密さを欠いているため、関数型言語の分類から相対的に外されることもある。

  • Lisp
  • Scala
  • Javascript
  • C++11
  • C#
  • Java

関連項目

  • 関数型プログラミング
  • 関数 / 副作用 / 参照透過 / 継続
  • ラムダ計算
  • プログラミング言語
  • プログラミング関連用語の一覧

関連リンク

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
もっと見る

急上昇ワード改

最終更新:2025/12/06(土) 13:00

ほめられた記事

最終更新:2025/12/06(土) 13:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP