Haskell:
コードを関数に整理する
方法:
以下は、Haskellで関数を書いて使う方法です:
-- 二つの数を足す単純な関数を定義
addNumbers :: Int -> Int -> Int
addNumbers x y = x + y
-- 関数を使う
main = print (addNumbers 3 5)
出力:
8
高階関数を作成することもできます:
-- 関数を取り、何かに対して二回適用する
applyTwice :: (a -> a) -> a -> a
applyTwice f x = f (f x)
-- 無名関数を使ってapplyTwiceを使用する
main = print (applyTwice (*2) 5)
出力:
20
ディープダイブ
純粋関数型言語であるHaskellは、関数を第一級市民として扱います。歴史的には、計算の基礎的なフレームワークであるラムダ計算に根ざしています。関数が命令型言語で命令のシーケンスであるのに対して、Haskellでは、関数はデータ間の関係を記述する式です。
再利用のために生の関数を書く以外の選択肢もあります。ポリモーフィズムに型クラスを使用することや、関連する関数をグループ化するためにモジュールを活用することを考えてみてください。Haskellの遅延評価も関数の実装に影響を与えます。関数は結果が必要になるまで評価されないため、パフォーマンスの考慮事項に影響を与える可能性があります。
関連情報
- 公式のHaskell文書: https://www.haskell.org/documentation/
- ミラン・リポヴァチャによる初心者向けの書籍「Learn You a Haskell for Great Good!」: http://learnyouahaskell.com/
- ブライアン・オサリバン、ドン・スチュワート、ジョン・ゴーゼンによる「Real World Haskell」: http://book.realworldhaskell.org/