マジセミドライブ
ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。
OSS情報
2020.01.01
【OSS情報アーカイブ】Haskell


※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。
「Haskell」とは
「Haskell」基本情報
概要
Haskell(ハスケル)とは、純関数プログラミング言語です。遅延評価を基本として静的型付けを行い、メンテナンス性が高く機能的なコードを作成できます。
基本説明
Haskellはラムダ計算に基づいている関数型言語であるため、コードは単一の式であり、式を評価することによって実行されます。
Haskellは、「他の言語との統合」「並行性と並列性の組み込み」「デバッガ」「プロファイラ」「豊富なライブラリ」「アクティブなコミュニティとの強力なサポート」などを特徴としており、柔軟でメンテナンス性に優れた高品質ソフトウェアを開発できます。
経緯
「Haskell」という言語名は、論理学者「Haskell B. Curry」の名前が由来です。
主な特徴
純粋関数型言語
Haskellは、多くの関数型言語の中でも、関数や再代入による状態変更を副作用として排除する「純粋関数型言語」です。
Haskellにおける「関数」は、数学における「関数」と同じく、引数の値が関数の返り値と一意に対応し不変であるものに限定されます。関数が内部状態を持つことは許可されず、変数の初期値を再代入によって変更できません。プログラムの記述は「等式の左辺は右辺の式へと変換できる」という関係性の定義を列挙していく形になります。
純粋関数型言語「Haskell」のメリット
・代入に伴うバグが存在しない(参照透明性)
・アンチパターンを実装しにくい
・コード生産性の効率化
・「簡潔で」「誤りが少なく」「明確な」「信頼性の高い」コードを記述できる
・プログラムの各部分の実行順序を任意に選択できる
・高度に変更可能で保守が必要なプログラムに特に適している
・関数の連鎖を簡単に融合できる
・関数は引数を評価しないため、関数を記述するだけで制御構文(if/elseなど)を書くことができる
・「探索処理」「構文解析処理」などのコードを比較的簡単に作成できる
アクション
Haskellにおいて、標準入出力などの、Haskellにおける「関数」では行えない処理については「アクション」と呼ばれ、「関数」とは区別されます。両者を同一プログラム内で矛盾を起こさないように共存させる仕組みが提供されています。
静的型指定
Haskellのすべての式は、コンパイル時に決定される型を持ち、関数アプリケーションで一緒に構成されたすべての型は一致する必要があります。
組み込みデータ型として、「整数」「浮動小数点型」「ブール型」「任意の精度の整数」「有理数」など豊富な種類が用意されています。
型推論
Haskellでは「型推論機能」を利用できるため、関数/変数の型宣言について、ある程度の省略が可能です。
Python型インデント記述
Haskellのコードでは、変数/関数のスコープについて、中括弧のような記号は使用せず、Pythonのようにソースコードのインデントの深さで表現されます。
パッケージ
パブリックパッケージサーバ上には、7000以上のHaskell用パッケージが用意されています。
同様製品
同様な機能を提供する製品として、次のようなものがあります。
「Clean」「Idris」「Miranda」など。
オフィシャルサイト
オフィシャルサイト
→Haskell(An advanced, purely functional programming language)
ライセンス情報
Haskellのライセンスは「修正BSDライセンス・三条項BSDライセンス」です。
詳細について、こちらを参照ください。
→Haskell →The Glasgow Haskell Compiler License
ダウンロード
参考元サイト
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
この記事のタグ一覧
フリーワード検索
カテゴリー一覧
アクセスランキング
- 🏆ランク1位🏆
【無料で使える】「 OCR 」ツールまとめ - 🏆ランク2位🏆
【無料で使える】「 ドキュメント管理 」ツールまとめ - 🏆ランク3位🏆
【ツール紹介】無料オープンソース「 ビデオ監視 ツール 」まとめ3選 - 🏆ランク4位🏆
【OSS情報】AIネイティブ埋め込みデータベース「 Chroma 」 - 🏆ランク5位🏆
【OSS情報アーカイブ】NW.js - 🏆ランク6位🏆
【無料で使える】「 バックアップ 」ツールまとめ - 🏆ランク7位🏆
【OSS情報アーカイブ】Odoo - 🏆ランク8位🏆
【無料で使える】「 プロジェクト管理 」ツールまとめ - 🏆ランク9位🏆
【ChatGPTプラグイン探訪】「 WebPilot 」〜Web検索プラグイン〜 - 🏆ランク10位🏆
【無料で使える】「 暗号化 」ツールまとめ