タグ

関数型言語とC言語に関するshige0216のブックマーク (1)

  • [Q&A]関数型プログラミング言語、よくある疑問

    そもそも「関数」とは? 関数ならC言語にもあるのでは 関数型でいう「関数」とは、C言語における関数やC++/Javaでいうメソッドとは微妙に異なる。関数型における「関数」とは、その出力が入力だけで一意に決まるものを指す。一方、C言語など一般的なプログラミング言語では、関数の出力は必ずしも入力だけでは決まらない。関数の内部にある変数の値、システム全体の状態などによって、同じ入力を与えたとしても出力は変わってしまうものが多い。結果として、関数の動作は複雑になり、コードの可読性も悪化、テストもしにくくなる。 関数型でいう「関数」は、プログラムをよりシンプルにする仕組みであり、関数型プログラミング言語では、この「関数」を主体にしたプログラミング・スタイルを支援する仕組みが備わっている(関連記事)。手続き型のプログラミング言語でも、状態などを入力に含めて記述すれば、関数型でいう「関数」と等しくなる。

    [Q&A]関数型プログラミング言語、よくある疑問
  • 1