OSS紹介

Haskell

Haskell最新情報

NRIのOpenStandiaが提供するHaskell最新情報

Haskellの保守サポートサービスの内容はこちら Haskellの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Haskellバージョンアップ情報

すべてを見る

更新日:2019-04-11

Haskellの概要

Haskell(ハスケル)とは、非正格評価で動作する純粋関数型言語です。
1987年当時、非正格評価の関数型言語にはリサーチ・ソフトウェア社のMiranda(非オープンソース)を筆頭に多数が乱立する状態になっており、オープンな標準仕様というものがありませんでした。このような状況から純粋関数型言語のオープンな標準仕様を作成するための委員会が発足し、1990年にはHaskell 1.0 が作成されました。その後、Haskell 98、Haskell 2010など言語仕様の拡張が行われ、現在に至ります。

Haskellのような純粋関数型言語では、一般的な手続き型言語のように、複数のステートメントを順次実行していくのではなく、複数の関数の組み合わせだけで処理を行います。また、この"純粋"とは、参照透過性があるいう意味になります。参照透過性がある関数型言語の場合、宣言した後の変数の値は常に一定で、不変となります。いわゆる代入操作がないことから、宣言型言語とも呼ばれます。また、関数の引数は遅延評価(非正格評価)で動作するという特徴があります。

Haskell のオープンソース実装として有名はものに、Glasgow Haskell Compiler(GHC)があります。GHCは最新のHaskell 2010 に準拠しており、さまざまなプラットフォームで利用可能なバイナリが提供されています。

TOPに戻る

Haskellの特徴

静的型付け 関数型言語の中でも、Haskellはコンパイル時に特に強力な型付けを行い、巨大なクラスの単純ミスを排除できます。この強力な型付けにより、コアダンプが抑止され、整数をポインターとして扱ったり、Nullポインターを参照したりする可能性がありません。
型推論 型を明示的に記述しない場合は、型推論により型付けが行われます。型推論により1つの型に限定できないような場合には、コンパイルエラーが発生するので、明示的な型宣言が必要です。
遅延評価 Haskellでは、関数の引数が実際に利用されるまで評価されない「遅延評価」で動作します。これにより、評価が必要のない値の計算量を低減したり、値の再計算を繰り返したりする必要がなく、処理の効率化が行われます。多くの言語では関数の引数が利用される前に評価される「正格評価」で動作しますが、Haskellでも必要に応じて正格評価も実現することができます(正格評価の場合のほうが効率的である場合など)。
純粋関数型言語 Haskellは参照透過性が成り立つ関数型言語、すなわち純粋関数型言語と呼ばれます。一般的な手続き型言語のような変数の値の変更は禁止されており、代入という概念がありません。
一方、モナド構文の do ブロックを利用することで関数型言語でありながら、あたかも手続き型言語のような記述が可能となります。
同時実行性 標準ライブラリだけで簡単にスレッドによる並列プログラムや非同期通信を実現することができます。
パッケージ Haskellへのオープンソース貢献は活発です。公開パッケージサーバー上で幅広いパッケージが無料で利用可能です。

TOPに戻る


Haskellの動作環境

以下のプラットフォームでは、Haskellツールチェーン(GHC、Cabal、Stack その他等)をインストールする方法が提供されています。

  • Linux
    ・Ubuntu
    ・Debian
    ・Fedora
    ・RHEL/CentOS
    ・Mint
    ・Gentoo
    ・Arch Linux
    ・Generic
  • Max OS X 10.8 以降
  • Windows(32/64 bit)

TOPに戻る

類似の機能をもつOSS

Haskellと同様に、強い静的型付けの純粋関数型プログラミング言語として分類されているものには、

  • Clean
  • Idris

があります。

TOPに戻る

Haskellのライセンス

Haskell のオープンソースコンパイラである Glasgow Haskell Compiler(GHC)はThe Glasgow Haskell Compiler Licenseの元で公開されています。このライセンスは修正BSDライセンスとほぼ同等の内容で、無保証であることの明記と著作権およびライセンス条文の表示を条件に、オブジェクトコードの自由な改変・頒布が認められています。

TOPに戻る

Haskellの公式サイト

https://www.haskell.org/

TOPに戻る

Haskellのダウンロード

https://www.haskell.org/downloads/

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • Corosync
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • BIND
  • PostgreSQL
  • Apache Struts
  • Pentaho
  • Spring Framework
  • Apache Tomcat
  • Solr
  • Dovecot
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • BIND
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO
<--!-->