geniacllm/wiki40b huggingface dataset:
前述のように、クロウメモドキ科の熟成した液果から抽出することが出来る成分のラムネチンは、フラボン染料に数えられる。
アゾメチン系の緑色顔料としては、緑色のニトロソ染料のナフトールグリーン Naphthol Green B (en)のレーキ顔料(Pigment Green 8)がある。印象的な深い緑を呈する。堅牢であるが耐水性にやや劣るところがある。マラカイトグリーンは、カルボニウム系の塩基性染料である。このレーキは、安価な水性絵具などにも用いられる。
現在使われている緑は、黄と青の物質を混合したものや併用したもの、黄と青緑の物質を混合したものや併用したものが多い。例としてカドミウム黄とウルトラマリンブルー、フタロシアニン緑、若しくはビリジアンの混合物であるカドミウムグリーン、かつて代表的だった例として黄鉛と紺青の混合物であるクロムグリーンがある。これらは顔料を混合しただけのものを用いるものあれば、共沈顔料と呼ばれる、複数の顔料を組み合わせた顔料を用いる場合もある。
2006年年末に、ギタリストのステファン・ヘベーディ (G)を中心に結成。結成に参加したメンバーは、Asphyx、ゴアフェスト、タナトス、Houwitserといったバンドで活動経験があり、互いに知った仲であった。結成時から、オールド・スクール・デスメタルバンドとすることを目的としていた。2007年、バンド名を冠したデモ『Hail of Bullets』をリリース。プロデューサーには、ダン・スワノを起用している。このデモをきっかけに、アメリカ合衆国の大手ヘヴィメタルレーベル・メタル・ブレイド・レコーズと契約。2008年に1stアルバム『…Of Frost And War』をリリースしデビューする。同アルバムは、第二次世界大戦のドイツ対ソ連の戦闘（独ソ戦）をテーマとしていた。2009年には、1stEP『Warsaw Rising』をリリース。2010年には、2ndアルバム『On Divine Winds』をリリース。同アルバムは、大日本帝國の栄枯盛衰をテーマに扱ったコンセプトアルバムで、主に太平洋戦争開戦のきっかけとなった真珠湾攻撃から終戦の玉音放送までを扱っている。日本でも、メタル・ブレイド・レコーズ・ジャパンから日本盤が邦題『吹けよ神風!』としてリリースされた。リリース後には、ヴァッケン・オープン・エアなどのフェスティヴァルにも出演した。2013年に、3rdアルバム『III: The Rommel Chronicles』をリリース。同アルバムは、ヴァイマル共和国軍やドイツ国防軍等で活躍し、陸軍元帥となったエルヴィン・ロンメルの一生を扱ったコンセプトアルバムである。2015年11月末、ボーカリストのマルティン・ファン・ドルネンが脱退。この脱退は、マルティンと他のバンドメンバーとの確執が大きな原因となっており、マルティンは「このバンドにいても全くもって幸せではない」、バンド側は「マルティンとバンド活動を共にすることはできない」と述べている。後にマルティンがインタビューで語ったところによれば、元々マルティンがバンド側といくつかの事柄について緊張状態にあった中、マルティンが酒に酔った勢いで罵詈雑言を並び立てたメールをメンバーに送付したことが脱退の引き金となった。ただし、マルティンの言い分ではこのような事態は初めてでは無く、過去に同様の事例があった際にもあるバンドメンバーがマルティンの主張を聴こうともしなかったことが背景にあるとしている。その後、デイヴィッド・イングラム (Vo)がライヴセッションで参加することが発表され、その後、正式に加入した。2017年3月中旬、解散することが発表された。バンド側は、数年前からバンド内で問題（バンド側はdiseaseと表現）を抱えており、その原因を排除したものの、問題は予想以上に深刻でバンドを立て直すことが出来なかったと述べている。
安城町長の岡田菊次郎などによって安城町に誘致され、1901年（明治34年）に愛知県立農林学校として創立。創立には当時愛知県会議長だった内藤魯一が尽力したと言われている。初代校長には山崎延吉が着任した。1922年（大正11年）、愛知県安城農林学校に改称した。戦前は新潟県の加茂農学校、静岡県の中泉農学校と共に三大農学校と呼ばれ、全国から生徒を集めていた。このような教育実績に基づき、第一次世界大戦後の高等教育拡充の動きのなかで安城農林を高等農林学校（現在の大学農学部に相当）に昇格させようとする動きが起こったが、実現しなかった。1946年（昭和21年）の学制改革により新制高等学校になり、現校名に改称された。1949年（昭和24年）に愛知県立安城高等学校と統合するものの、翌年には再び分離独立した。安城市長・明治用水土地改良区理事長等をつとめた石原一郎（大正7年卒）や元参議院副議長の森八三一など優秀な人材を多く輩出し、安城市一帯が日本デンマークと呼ばれるほどの農業先進地になった要因の一つである。校内には5.3ヘクタールの実習地があり、校舎をあわせると14ヘクタールほどになる。校外にも豊田市や新城市に生徒が実習するための演習林と呼ばれる山も所有している。部活動はあまり活発でないが、馬術部はインターハイ出場経験をもつ。
三森すずこ、徳井青空、佐々木未来、橘田いずみの4名が、さまざまなことに挑戦するバラエティ番組である。毎回、この4名がさまざまな企画に挑んでいく。時にはロケに出かけていき、通常はあまり目にすることないようなさまざまなシチュエーションを体験して、視聴者にその面白さや不思議さをわかりやすく伝えている。なお、ナレーションは森嶋秀太が担当する。また、三森、徳井、橘田、佐々木らが出演するインターネットラジオ番組『ミルキィホームズ 探偵学院放送室』の紹介が行われることもある。また、この番組はインターネット経由でも配信している。ニワンゴのウェブサイト「ニコニコチャンネル」上でブシロードが運営する「武士道通信」により、京都放送やテレビ神奈川と同内容を配信している。
第1回放送では、レギュラー4名の紹介と、「エリーを探せ! ミルキィホームズ声優オーディション」にて佐々木がグランプリを獲得する模様を伝えた。第4回からは、ガル探偵学校を訪問し、同校の講師]を兼任するガルエージェンシーの常務から、探偵術の手ほどきを受けるという内容となった。盗聴器の捜索や盗撮にチャレンジするなど、本格的な内容となっている。また、探偵にまつわるペーパーテストが課された際には、常務が「皆さん、トイズは使わないでくださいね」と訓示するなど、常務のノリのよさも特徴である。レギュラー4名は、原則的に声優ユニット「ミルキィホームズ」としての衣装を着用して出演している。この衣装は、『探偵オペラ ミルキィホームズ』の登場人物の衣装を模したものである。なお、佐々木だけ衣装の準備が間に合わなかったため、第1回放送をはじめ、複数週にわたって一人だけ私服で出演していた。また、夏季は暑いため、第24回放送などでは私服での収録となったが、その際には「ミルキィホームズ」の衣装と同色のリストバンドを着用した。なお「こんばんみるきぃ」など語尾に「みるきぃ」を付けた挨拶を交わすのが定番となっている。
1999年にDJ活動を開始。翌年ロックイベント「CROSSCOUNTER」を主宰。海外ロックバンドのJAPAN TOURオフィシャルパーティとしての開催や、バンドメンバーをゲストDJとして招聘した。数々の海外アーティストとの共演や、FUJI ROCK FESTIVAL、渚音楽祭、THE STAR FESTIVALといった大型野外フェスへ出演。2010年、自身のレーベルSugar Recordingsを立ち上げ、楽曲のリリースやイベントプロデュースを行う。2011年からは東京へも活動の場を広げ、WOMB、ageHa、AIR、VISIONを中心に活動。DEADMAU5のレーベル、MAU5TRAPに所属するMOGUAIの東京公演、BASEMENT JAXX JAPAN TOUR 2011も主宰。音楽プロデューサーとしては、Sugar Recordingsからのリリースをはじめ、海外のダンスミュージックレーベルからのリリース、海外、国内アーティストの楽曲のリミックス、ラジオ局用のBGM、FLASH制作、国内大手企業などへCM音楽の提供を行っている。2014年にFM802 DJオーディションに合格し、ラジオDJとして2014年10月にデビュー。FM802で毎週番組DJを担当している。
ペレムィシュリ公国（ロシア語: Перемышльское княжество）とは、ペレムィシュリ（現プシェムィシル）を首都として11 - 13世紀に存在した、ルーシの公国の1つである。
1084年、イズゴイ・クニャージ（何処の領土に関しても継承権を持たない公）となっていたロスチスラフ・ウラジミロヴィチの子らによって、ヴォルィーニ公国から分離した。具体的には、ロスチスラフの子らは一時ヴォルィーニ公国の首都・ウラジーミル・ヴォリンスキーを陥とすが、ヴォルィーニ公ヤロポルクとの戦争に破れる。その後、キエフ大公フセヴォロド1世の裁量によって、ロスチスラフの子の中のリューリクが公国を受領したことによる。1092年にリューリクは子のないまま死亡し、その弟のヴォロダリが公位に就いた。1097年のリューベチ諸公会議によって、ペレムィシュリ公国はヴォロダリの世襲領となることが決まった。しかし同年、ヴォルィーニ公ダヴィドがヴォロダリの弟で、同会議でテレボヴリ公となったヴァシリコを襲い、リューベチ諸公会議での決定事項を反故にした。さらにはキエフ大公スヴャトポルク2世がテレボヴリ公国を狙っていた。それに対し、ヴォロダリらは1098年にキエフとチェルニゴフの軍勢を破った。また、1099年のヴャグルの戦い(ru)ではポロヴェツ族のボニャークと同盟し、ハンガリー王国軍を破った。1124年のヴォロダリの死後、ペレムィシュリ公国とズヴェニゴロド公国をヴォロダリの子らが領有した。ズヴェニゴロド公となったウラジーミルは、ハンガリー王国の協力を得て、ペレムィシュリ公国を自領に加えようとした。一方ペレムィシュリ公となったロスチスラフは、テレボヴリ公ロスチスラフ、ガーリチ公イヴァン、キエフ大公ムスチスラフ1世らの援助を得て対抗した。その後ウラジーミルがペレムィシュリ公となり、先に死亡したロスチスラフ領のテレボヴリ公国、イヴァン領のガーリチ公国を継承し、これらの公国を統合したガーリチ公国が成立した（1141年のイヴァンの死後に首都をペレムィシュリからガーリチに移転）。また1144年にズヴェニゴロド公イヴァンによるガーリチ蜂起(ru)を鎮圧した後、ズヴェニゴロドとイヴァンの私領をも併合した。このようにしてペレムィシュリ公国はガーリチ公国の一部となった。さらにガーリチ公国は1199年にヴォルィーニ公国と合併してガーリチ・ヴォルィーニ大公国となる。この時期には、1210年 - 1211年に分領地公としてスヴャトスラフ(ru)がペレムィシュリ公に着任、1214年にポーランド王レシェク1世が領有、1226年 - 1227年にかけてハンガリー王国の王子でガーリチ公のアンドラーシュの分領地、1235年 - 1238年にルーシ系のガーリチ公ダニール領となるなど、ルーシ・ポーランド・ハンガリーの3勢力が絡む統治者の変遷が見られた。首都のペレムィシュリは現在はポーランドのプシェムィシルとなっている。
日本時間4月9日午前1時32分に島根県西部の深さ約10 kmで Mj6.1（暫定値）の地震が発生した。この地震により島根県で最大震度5強を観測した。この地震は地殻内で発生した地震である。本震の発震機構は、西北西 - 東南東方向に圧力軸を持つ横ずれ断層型（速報）で、北北西 - 南南東方向に延びる左横ずれ断層の震源断層であったと推定される。2011年の東日本大震災以降、山陰地方の日本海側は年に5 - 6ミリメートル (mm) 程度瀬戸内海側に対して東に動いており、大陸プレート内にひずみが集中しているという。
この地震の震央付近には活断層が確認されていないが、M5以上の地震は過去に発生している。近辺では、1930年12月20日にM6.1、1978年6月4日にM6.1の地震（島根県東部地震）が発生している。島根県西部では1963年にM5の地震が相次いで発生している。
この地震により負傷者9人（重傷者2人、軽傷者7人）の人的被害が確認されているほか、1,000棟以上の建物に被害が確認された。また、水道と電気のライフラインにも支障をきたし、大田市では50戸の停電、水道は一時1,100戸以上断水した。島根県は、大田市で給水が困難な状況になっているとして自衛隊に災害派遣を要請した。
一時松江自動車道の尾道松江線の一部区間で通行止めとなったほか、邑智郡美郷町の町道では100メートルにわたる土砂崩れが発生し、落石による道の通行止めも確認されている。鉄道では山陰本線の西出雲駅から益田駅間で安全確認のために運転見合わせとなり、特急列車も一部運休等の措置が取られた。山陰本線は同日の17時51分に全線で運転が再開された。
幾つかの国ではティースプーンはテーブルスプーンとともに量の単位に使用されており、料理レシピや薬品処方にも使われている。この単位は英語でt.やtsp.などと略され、ドイツではTLと略される。これは大体5mlを意味しており、アメリカなどこれを法で定義している国家もある。また、インド、オーストラリア、カナダ、ニュージーランド、イギリスなどの英語圏の国家ではこのような法がある国も多い。古い定義ではアメリカで1/6米液量オンス、イギリスで1/8英液量オンスに指定されていた。また、1テーブルスプーン単位は3ティースプーン単位とされている。なお、オーストラリアでは4ティースプーン単位が1テーブルスプーン単位とされている。攪拌のための一般的なティースプーンはこのように厳密でなく、2.5～6ml程度である。このためこのようなティースプーンを使った調薬は気をつけて行うべきであり、調薬の間違いを避けるために、特別に5mlが計れるスプーンが販売されている。レシピでティースプーン一杯の粉や塩、砂糖などを図る際には擦りきり一杯のことを表している。ティースプーン一杯の塩は5mlであるが、おおよそ4.75グラムになっている。英国の幾つかのレシピでは盛りさじ一杯の単位の場合もあり、ならさずに一杯すくい上げることに言及している。分量は不正確であり、2杯以上では大きく分量が異なってくる。
嶋村 るい（しまむら るい、2000年4月18日 - ）は、日本の子役。キリンプロ所属。趣味は、ダンス、お店屋さんごっこ、パソコン。特技は、日本舞踊（花柳流）、英会話。
1983年に『ふぞろいの林檎たち』にてデビューし、いきなり当たり役を得る。1990年代後半からは『渡る世間は鬼ばかり』にて田島聖子役でレギュラー出演。イヤミな役どころを演じきり、代表作となる。「太めの体型で容姿にコンプレックスを持つ役柄」が定番だったが、後にダイエットに成功し、1995年11月20日にフォト&エッセイ集『脂肪』（写真：荒木経惟、新潮社）を出版し、ヌードを披露した。同年12月から1997年2月まで「文化庁派遣芸術家在外研修員」としてニューヨークに留学。また、ニューヨークでの生活体験を書いた連載エッセイ「N.Y.留学徒然草」（『Tokyosant』、6回）、「ニューヨーク永住計画」（『クロワッサン』、6回）も話題になった。2002年に現地のジャズミュージシャンと結婚して以降、ニューヨーク在住。古伊万里コレクターの一面があり、長年、古伊万里の陶磁器を収集している。2012年に『開運!なんでも鑑定団』にゲスト出演した際、自らが東京ビッグサイトで行われた骨董市で買ったと言う猪口を鑑定してもらったところ、中島誠之助から「良いものですね」と評価され、「目利きの才能がある」とまで言わしめた。しかも、この時、本人評価額と鑑定額が同一になったことで目利き認定証も贈られた（認定証贈呈は初めての贈呈者が出た一般視聴者に次いで史上2人目であるが、ゲスト依頼人では初めての出来事）。プライベートでは久本雅美や『ふぞろい』シリーズで共演した手塚理美、高橋ひとみらと親交がある（特に久本は留学先まで出向いて逢いに行くほどの間柄）。
岩崎 允胤（いわさき ちかつぐ、1921年(大正10年)1月7日 - 2009年(平成21年)）は、日本の哲学者。一橋大学名誉教授。日本平和委員会代表理事、唯物論研究協会委員長等を歴任。
東京市本郷区生まれ。第一高等学校卒、1943年東京帝国大学法学部卒業。1949年東京大学文学部卒業。北海道大学文学部助教授、教授、1973年一橋大学社会学部教授、1980年唯物論研究協会委員長。1984年定年退官、名誉教授、大阪経済法科大学教授。日本平和委員会代表理事等を歴任した。日本共産党の出隆教授（のちに共産党を除名）に師事して古代ギリシア哲学を専門としたが、左翼的立場にたち、梅原猛や河合隼雄を批判、また歴史に取材した戯曲や、小説も書いた。指導学生に島崎隆（一橋大学名誉教授）、平子友長（一橋大学名誉教授）、柴田寿子（元東京大学教授）、丸山不二夫（稚内北星学園大学初代学長）、赤井正二（立命館大学名誉教授）、照井日出喜（元北見工業大学教授）、竹内章郎（岐阜大学教授）、後藤道夫（都留文科大学名誉教授）、中西新太郎（横浜市立大学名誉教授）、寺田元一（名古屋市立大学教授）、佐藤春吉（立命館大学教授）、前田庸介（首都大学東京名誉教授）、角田史幸（元秀明大学教授）、三浦展（マーケター）など。
Haskell は高階関数や静的多相型付け、定義可能な演算子、例外処理といった多くの言語で採用されている現代的な機能に加え、パターンマッチングやカリー化、リスト内包表記、ガードといった多くの特徴的な機能を持っている。また、遅延評価や再帰的な関数や代数的データ型もサポートしているほか、独自の概念として圏論のアイデアを利用し参照透過性を壊すことなく副作用のある操作（例えば 代入、入出力、配列など）を実現するモナドを含む。このような機能の組み合わせにより、手続き型プログラミング言語では記述が複雑になるような処理がしばしば簡潔になるばかりではなく、必要に応じて手続き型プログラミングを利用できる。Haskell は関数型プログラミングの研究対象として人気が高い。あわせて Parallel Haskell と呼ばれるマサチューセッツ工科大学やグラスゴー大学によるものをはじめ、他にも Distributed Haskell や Eden といった分散バージョン、Eager Haskell と呼ばれる投機的実行バージョン、Haskell++ や O'Haskell、Mondrian といったオブジェクト指向バージョンも複数存在しているなど、いくつもの派生形が開発されてきている。GUI開発向けサポートの新しい方法を提供する、Concurrent Clean と呼ばれる Haskell に似た言語もある。Haskell と Concurrent Clean の最大の違いは、モナドを代用する一意型の採用である。Haskell は比較的小規模なユーザコミュニティを持つが、その力はいくつかのプロジェクトで十分に生かされてきた。オードリー・タングによる Pugs は近くリリース予定である Perl6 のインタプリタとコンパイラの実装で、書くのにたったの数ヶ月しかかからなかったなど Haskell の有用性を証明するものである。Darcs はさまざまな革新的な機能を含むリビジョンコントロールシステムである。Linspire Linux は Haskell をシステムツール開発に選択した。Haskell の急速な進化は今も継続しており、GHCは現在の事実上の標準の処理系であるといえる。ICFP Programming Contest では2001年、2004年、2005年に最優秀賞に選ばれている。Cabal は Haskell 用のビルドおよびパッケージングシステムである。Cabal を利用して Haskell ライブラリのアーカイブである Hackage を参照して、新たなパッケージを簡単にインストールすることもできる。しばしばパッケージの依存地獄が発生しがちだが、それらを解決するため、Stackという環境も有志によって提供されている。
最初の版の Haskell（Haskell 1.0）は1990年に作成された。委員会の活動は一連の言語仕様を結果に残し、1997年後半にそのシリーズは、安定しており小さく可搬なバージョンの言語仕様と、学習用および将来の拡張の基礎としての基本ライブラリなどを定義したHaskell 98 に到達した。実験的な機能の付加や統合を通じて Haskell98 の拡張や派生物を作成することを、委員会ははっきりと歓迎した。
2006年前半、非公式に Haskell′（Haskell Prime）と呼ばれている Haskell 98 standard の後継の作成プロセスが開始された。このプロセスは Haskell 98 のマイナーバージョンアップを目的としている。
Haskell 2010 は他のプログラミング言語とのバインディングを可能にする Foreign Function Interface（FFI）を Haskell に追加し, いくつかの構文上の問題を修正する(正式な構文を変更する)。「n + k パターン」と呼ばれる構文を削除し, fak (n+1) = (n+1) * fak nというような形式の定義はもはや許されない。Haskell に Haskell 2010 のソースかどうかや, いくつかの必要な拡張の指定を可能にする言語プラグマ構文拡張を導入する。Haskell 2010 に導入された拡張の名前は, DoAndIfThenElse, HierarchicalModules（階層化ライブラリ）, EmptyDataDeclarations, FixityResolution, ForeignFunctionInterface, LineCommentSyntax, PatternGuards, RelaxedDependencyAnalysis, LanguagePragma, NoNPlusKPatterns である。
Haskell の型名は先頭が大文字でなければならない。標準で存在する単純なデータ型としては、Bool（真偽値）型、Int（整数）型、Float（単精度浮動小数点数）型、Char（文字）型、String（文字列）型などが予め定義されている。任意の式の型を定義するには、式と型の間に :: 記号をおく。また、変数などのシンボルを定義する際に変数名を式に指定して書くことで、その変数の型を指定することができる。例えば、次は円周率およびネイピア数を定数として定義し、さらにその型も浮動小数点型として指定している。pi :: Floatpi = 3.1415926535e = 2.7182818284 :: Float    -- 式の中でその型を指定している関数の型は、各引数の間を -> 記号で区切って表記する。関数は引数をひとつ適用するたびに、その型は -> で区切られたうちの一番左が消えた型となると考えればよい。例えば、ふたつの整数を引数にとりその最大公約数を返す関数 gcd の型は次のように定義される。gcd :: Int -> Int -> Int    -- 関数名 :: 引数1の型 -> 引数2の型 -> 返り値の型型変数を使い、型を抽象化することもできる。これは C++ のテンプレートや Java のジェネリクスに相当するが、様々な種(型の型)に適用できるためより柔軟である。例えば、a 型の値をとり、それをそのまま返す恒等関数 id を型の指定とともに定義すると以下のようになる。ここで任意の型を示す型名 a が定義に使われているが、このように先頭が小文字で始まっている型名は具体的な型名ではなく型変数である。この関数はあらゆる型の値を引数にとることができる。id :: a -> aid x = xまた、データ型はパラメータとして型変数を持つことができる。例えば、スタックやハッシュテーブルなどのデータ型は、その要素の型を型変数として定義する。ハッシュテーブルを実装するデータ型 HashMap :: * -> * -> * があり、キーに文字列（String）、値に整数（Int）を持つハッシュテーブル hashtable の型は次のようになる。hashtable :: HashMap String Intそのほか、特殊な表記を持つ型としてリストとタプル、文字列がある。リストは Haskell で極めて頻繁に用いられるため、特別な構文が用意されている。リストは要素の型を角括弧で囲む。次は Char（文字）のリストを束縛する変数 text の定義である。文字のリストは文字列と等価である。2行目にあるように、文字列は殆どのプログラミング言語と同じように二重引用符で囲む。コメントにHaskellでのリストの表記を添えた。最後にデシュガー（糖衣構文を元の表記に戻すこと）したリストの表記法を示した。textもhelloも等価である。text :: [Char]text = "Hello"    -- ['H','e','l','l','o'] の糖衣構文hello :: [Char]hello = 'H':'e':'l':'l':'o':[]タプルは要素の型をカンマで区切り、括弧で囲む。次は Float（浮動小数点数）の値をもつ2次元座標のタプルが束縛される変数 point の定義である。point :: (Float,Float)point = (3, 7)タプルは2以上ならいくつでも要素を持つことができる。1要素のタプルは優先順位の括弧と表記が衝突し、また用途がないので存在しない。要素数がゼロのタプルは特に「ユニット」(Unit) と呼ばれ、有効な値を持たないなどの時に使われる。type キーワードを用いて、型に別名をつけることができる。次は [Char] に String という別名をつけている。type String = [Char]text :: String
関数名は先頭が小文字でなければならず、記号を含むことはできない。演算子名は記号のみで構成されていなければならない。関数の定義ではC言語のような引数を囲む括弧や区切りのカンマは使われず、単に引数を空白文字で区切って表記する。次は先程示した恒等関数 id に、型の定義に加えて本体の定義もした例である。id :: a -> aid x = x    -- 関数名 仮引数1 仮引数2 &hellip; = 関数本体の式関数の適用も同様で、単に関数に続いて空白文字で区切った引数を並べればよい。以下では上記の恒等関数 id を(ここでは使う必要はないが)適用して、別の変数を定義した例である。hoge = id "piyo"    -- hoge == "piyo" となる。引数がつねに2個であることや引数の間に演算子をおくことなどを除けば、演算子についても関数の定義や適用と同様である。標準で定義されている算術演算子を使って、BMIを計算する関数 bmi を定義してみる。bmi :: Float -> Float -> Floatbmi weight height = weight / height ^ 2この定義では Float を引数にとり Float で結果を返すが、この関数では Double を引数に使うことはできない。どの浮動小数点数型でも扱えるような関数にするには、次のように型変数を使えばよい。bmi :: Floating a => a -> a -> abmi weight height = weight / height ^ 2このバージョンの関数 bmi では引数や返り値の型が a とされているが、これにさらに a は Floating であるとの制約をつけている。Floating は Float や Double を抽象化する型クラスであり / や ^  といった演算子を適用できるので、bmi の定義においてこれらの演算子を使うことができている。また、整数などの値は引数に取れないし、返り値は引数に与えた型で戻ってくる。関数と演算子は新たに定義し直さなくても相互に変換可能である。関数を演算子として使うには、関数を ` (バッククォート)で囲む。逆に、演算子を関数として使うには括弧で囲む。例えば、整数を除算する関数 div はよく演算子として使われる。aspectRatio = width `div` heightなお、関数適用の優先順位はすべての演算子の優先順位よりも高い。
Haskell は遅延評価を基本的な評価戦略とする。ほとんどの言語では関数の呼び出しにおいて引数に与えられたすべての式を評価してから呼び出された関数に渡す先行評価を評価戦略とするが、これに対し Haskell ではあらゆる式はそれが必要になるまで評価されない。次の定数 answer は評価すると常に 42 を返すが、その定義には未定義の式を含む。answer = const 42 (1 `div` 0)ここで、const は常に第1引数を返す定数関数である。また、`div` は整数の除算を行う演算子であり、1 `div` 0 は 1 / 0 に相当し、この値は未定義であり、この部分を評価すればエラーになる。正格評価をする言語でこのような式を評価しようとすると、ゼロ除算によるエラーになるであろう。しかし 上記の定数 answer を評価してもエラーにはならない。const は第1引数をつねに返すので第2引数を評価する必要はなく、第2引数に与えられた式 1 `div` 0 は無視されるので評価されないからである。遅延評価がデフォルトで行われることにより、不要な計算は省かれ、参照透過性により同じ式を複数回評価する必要もなくなるため、Haskell では最適化によって計算効率の向上が期待できる場合がある。ただし、頻繁に新たな値を計算する場合は正格評価のほうが効率がよく、必要に応じてseq関数やBangPatterns拡張による明示により正格評価もできる。
Haskell では関数のデータ型を明示しなくても処理系が自動的に型を推論する。以下は型の宣言を省略し、本体のみを宣言した引数の平方を返す関数 square である。square x = x * xこの場合 square の型は型推論され、次のように明示的に型を宣言したのと同じになる。square :: (Num a) => a -> asquare x = x * xこの宣言は、「Numのインスタンスである a の型の値を引数にとり、a の型の値を返す」と読める。ここでは「*」演算子が適用可能な最も広い型である Num a が選択されており、整数や浮動小数点数、有理数のような Num のインスタンスであるあらゆる型の値を渡すことができる。外部に公開するような関数を定義するときは、型推論によって自動的に選択される最も広い型では適用可能な範囲が広すぎる場合もある。Integer のみを渡せるように制限する場合は、次のように明示的に型を宣言すればよい。square :: Integer -> Integersquare x = x * x型推論のため、Haskell は型安全でありながらほとんどの部分で型宣言を省略できる。なお、次のコードは型宣言が必要な例である。read は文字列をその文字列があらわすデータ型に変換する抽象化された関数である。main = print (read "42")    -- コンパイルエラー！このコードはコンパイルエラーになる。read は複数のインスタンスで実装されており、数値なら数値型に変換する read、リストならリストに変換する read というように型ごとに実装が存在する。Haskell の型は総て静的に決定されなければならない。このコード場合、プログラマは read :: String -> Intという型をもつ実装の read が選択されると期待しているであろうが、これはコンパイラによる静的な型検査では決定できない。つまり、Haskell コンパイラは read の返り値を受け取っている関数 print の型を検査し多数の実装の中から適切な read を選択しようとするが、print は Show のインスタンスが存在するあらゆる型を引数にとるため、型推論によっても read の型を一意に決定できない。これを解消するひとつの方法は、:: によって型を明示することである。main = print ((read "42") :: Int)    -- コンパイル成功！read の返り値を Int と明示しているまた、そもそも read の返り値を整数型しか取らない関数に与えていればあいまいさは生じず、型推論は成功する。printIntOnly :: Int -> IO ()printIntOnly x = print xmain = printIntOnly (read "42")    -- コンパイル成功！他の言語、たとえば Java でこのような抽象的な関数を書こうとしても、Java では返り値の値の型によって関数を選択するようなことはできない（引数の型によって選択するメソッドのオーバーロードは存在する）。そのため、関数の実装ごとに別の名前をつけてプログラマに明示的に選択させて解決させることになる。この方法は簡潔でわかりやすいが、抽象性の高さに基づく再利用性という点では Haskell のような多相には劣ってしまう。
Haskell のデータ型には代数的データ型と呼ばれる、C言語などでいう構造体や列挙体の性質を兼ね備えたものが用いられる。次の例は二つのInt型の値をフィールドに持つ二次元の座標、Point2D 型を定義したもので、これは代数的データ型の構造体的な性質を示す。先頭のトークン「data」は代数的データ型の宣言であることを示す予約語である。ここで最初の Point2D はデータ型名を表し、次の Point2D はデータコンストラクタ名を示す。data Point2D = Point2D Int Intorigin :: Point2Dorigin = Point2D 0 0    -- データコンストラクタは関数のように適用できるデータコンストラクタは値を定義するための特殊な関数といえる。データコンストラクタは後述するパターンマッチによって値を取り出す際にも用いられる。次の例はトランプの4つのスーツを示す Suit 型を定義したものである。Spade、Heart、Club、Diamond の4つのデータコンストラクタが定義されており、Suit 型の式は Spade、Heart、Club、Diamond のいずれかの値をとる。data Suit = Spade | Heart | Club | Diamond次の例は String 型の値を格納する二分木の型である。Leaf（葉）は String 型の値を持ち、Branch（枝）は Leaf もしくは Branch である Tree 型の変数を二つ持つ。これは代数的データ型の構造体的な性質と列挙体的な性質の両方が現れている。data Tree = Leaf String | Branch Tree Treeorganisms :: Treeorganisms = Branch animals plants    -- Branch (Branch (Branch (Leaf "Lion") (Leaf "Tiger")) (Leaf "Wolf")) (Leaf "Cherry")animals = Branch cats (Leaf "Wolf")cats = Branch (Leaf "Lion") (Leaf "Tiger")plants = Leaf "Cherry"GADTと呼ばれる機能を使うと、コンストラクタの型を明示してデータ型を定義することもできる。{-# LANGUAGE GADTs #-}data Maledata Femaledata Person s where    Adam :: Person Male    Eve :: Person Female    Child :: Person Male -> Person Female -> Int -> Person a
Haskell は第一級関数をサポートしており、高階関数を定義することができる。つまり、関数の引数として関数を与えたり、返り値として関数を返すことができる。無名関数は \ (バックスラッシュ)から始まり、それに続いて引数となる変数、引数と本体のあいだに -> 記号をおく。List モジュールに定義されているリストのソートを行う関数 sortBy は、二つの要素に大小関係を与える関数を引数にとるが、無名関数を使うと例えばリストをその長さの短い順にソートする関数 sortList は次のように定義できる。sortList xs = sortBy (\as bs -> compare (length as) (length bs)) xs
Haskell において、2つの引数を持つ関数は、1つの引数をとり「1つの引数をとる関数」を返す関数と同義である。このように、関数を返すことで全ての関数を1つの引数の関数として表現することをカリー化という。(あえてタプルを使うことで複数の引数を渡すような見かけにすることもできるが。)次の例は2つの引数をとり、そのうち値が大きい値を返す関数 max である。 max a b = if a > b then a else bこの関数maxは無名関数を用いて次のように書き換えることができる。先ほどの表現とまったく同様に動作するが、この表現では関数を返す様子がより明らかになっている。 max a = \b -> if a > b then a else bさらに、次のようにも書き換えることができる。 max = \a -> \b -> if a > b then a else bあるいは、f x = ... x ... は、 f = (\x -> ... x ...) の糖衣構文であるとも言える。このため、Haskell の定義は変数に束縛するのが定数であるか関数であるかにかかわらず、「変数 = 値」という一貫した形でも定義できる。カリー化によって、Haskell のあらゆる関数は引数を部分適用することができる。つまり、関数の引数の一部だけを渡すことで、一部の変数だけが適用された別の関数を作り出すことができる。また、Haskell では演算子を部分適用することすら可能であり、演算子の部分適用をとくにセクションと呼ぶ。任意のリストをとり、その要素から条件にあう要素のみを取り出す関数 filter が標準ライブラリに定義されている。filter :: (a -> Bool) -> [a] -> [a]この関数では第一引数に残す要素を判定する関数をとるが、このときに部分適用を使えばそのような関数を簡潔に書くことができる。整数のリストから正の値のみを取り出す関数 positives は次のように定義できる。positives :: [Int] -> [Int]positives = filter (> 0)ps = positives [-4, 5, 0, 3, -1, 9]    -- [5, 3, 9]ここで、positives および filter の第2引数はソースコード上に現れずに記述できているが、このように単純に書けるのもカリー化の恩恵によるものである。
Haskell では関数の引数を様々な形で受け取ることができる。次は整数の要素をもつリストの全要素の合計を返す関数 total である。total :: [Int] -> Inttotal [] = 0total (x:xs) = x + total xstotal の関数本体の定義がふたつあるが、このうち引数の実行時の値と適合する本体が選択され呼び出される。上の本体定義では、引数が空のリストであるときのみ適合し、呼び出される。下の本体定義では、引数が少なくともひとつの要素を持つとき適合し、x に先頭の要素が束縛され、xs に残りのリストが束縛される。この例の場合はパターンに漏れはないが、もし適合するパターンが見つからない場合はエラーになる。複数の返り値を扱うのもタプルなどを利用して極めて簡明に書くことができる。(x, y) = (10, 20)このとき、定義される変数は x および y で、それぞれ x は 10 に、y は 20 に定義される。
Haskell で順序付けられた複数の値を扱うのにもっとも柔軟で簡潔な方法はリストを用いることである。次は四季の名前のリストである。 ["Spring", "Summer", "Autumn", "Winter"]次は初項10、公差4の等差数列のリストである。このリストは無限リストであり、その長さは無限大である。 [10, 14..]次の式は先ほどの数列の先頭20項を要素に持つリストである。take n l はリスト l の先頭 n 個の項を要素に持つリストを返す関数である。 take 20 [10, 14..]もし正格な動作を持つ言語でこのような定義をしようとすると関数 take に値を渡す前に無限リストを生成することになるが、長さが無限のため無限リストの生成が終わることはなく関数 take がいつまでも呼び出されなくなってしまう。Haskell は遅延評価されるため、このようなリストを定義しても必要になるまで必要な項の値の生成は遅延される。このように無限リストを扱えるのは Haskell の大きな強みである。次は素数列をリスト内包表記を用いて定義した一例である。 primes :: [Int] primes = [x | x <- [2..], and [rem x y /= 0 | y <- [2 .. x - 1]]]リストはその柔軟性から再帰的な関数での値の受け渡しに向いているが、任意の位置の要素にアクセスするためには参照を先頭からたどる必要があるのでランダムアクセスが遅い、要素を変更するたびにリストの一部を作り直さなければならないなどの欠点がある。このため Haskell にも配列が用意されており、高速な参照や更新が必要なプログラムではリストの代わりに配列を用いることでパフォーマンスを改善できる可能性がある。
型クラスは相異なるデータ型に共通したインターフェイスを持つ関数を定義する。例えば、順序づけることができる要素をもつリストをソートできる関数 sort を定義することを考える。リストの要素のデータ型は関数 sort を定義するときには不明であり、その要素をどのように順序付けるかを予め決定しておくことはできない。数値型も文字列型もそれぞれのデータを順序付けることができるであろうが、共通してデータの順序を返す抽象的な関数 order を定義することができれば、それを用いてソートすることができる。まず型クラス Comparer を定義して、順序付ける関数 order の形式を定義する。値の順序を調べる関数 order x y は x → y が昇順のときは負の値、降順の時は正の値、x と y が等しいときは 0 を返すものとする。ここで class は型クラスの宣言であることを示す予約語である。 class Comparer a where     order :: a -> a -> Int型クラスを実装するには、対象のデータ型に対してインスタンス宣言を行う。次は型 a の型クラス Comparer に対するインスタンスを宣言したものである。このインスタンス宣言により、Enum のインスタンスである任意の型のリストを辞書順に比較できる。例えば、文字列 Char は Enum のインスタンスの Char のリストであり、このインスタンス定義により order を適用することができるようになる。ここで関数 fromEnum c は文字 c を数値に変換する関数である。Comparer のインスタンスを定義する型 a を Eq および Enum のインスタンスを持つものに限定しているので（(Eq a, Enum a) => の部分）、インスタンス定義の内部で Eq の関数である (/=) や Enum の関数である fromEnum を使うことができている。instance (Eq a, Enum a) => Comparer [a] where    order [] [] = 0    order _ [] = 1    order [] _ = -1    order (x:xs) (y:ys) | x /= y    = fromEnum x - fromEnum y                         | otherwise = order xs ys次にリストをクイックソートする関数 sort を示す。型クラスを用いて順序付ける関数 order を抽象化したため、このように型クラス Comparer のインスタンスを持つ全ての型の値に適用できる一般化されたソート関数を定義できるのである。 sort :: Comparer a => [a] -> [a] sort [] = [] sort (x:xs) = sort [e | e <- xs, order e x < 0] ++ [x] ++ sort [e | e <- xs, order e x >= 0]この関数 sort は次のように使う。main = do    print (sort ["foo", "bar", "baz"]) -- ["bar", "baz", "foo"] と出力される。    print (sort [[5, 9], [1, 2], [5, 6]]) -- [[1, 2], [5, 6], [5, 9]] と出力される。Haskell のインスタンス宣言は複数の型に共通する操作を定義するという点で Java や C# の「インターフェイス」と似ているが、Haskell では既存の任意の型についてもインスタンスを定義できる点でもインターフェイスに比べて柔軟である。
すべての式が参照透過である Haskell においては、副作用を式の評価そのものでは表現できない。そのため、Haskell では圏論のアイデアを利用したモナドによって入出力が表現されており、Haskell でも最も特徴的な部分となっている。次は Haskell による Hello world の一例である。実際に単独で実行可能形式にコンパイルできる、小さいが完全なプログラムの一例にもなっている。 main :: IO () main = putStrLn "Hello,World!"Haskell は純粋関数型言語であり、main もやはり参照透過である（副作用はない）。しかし処理系は main として定義された IO () 型の値をそのプログラムの動作を示す値として特別に扱う。putStrLn は標準出力に文字列を出力する動作を表す IO () 型の値を返す関数であり、実行すると引数として渡された Hello,World! を出力する。次に標準入力から一行読み込み、そのまま標準出力に出力するエコープログラムを考える。次のような、C言語などのような表記はできない。getLine 関数は標準入力から一行読み取る関数である。 main = putStrLn getLine --コンパイルエラー！getLine と putStrLn はそれぞれ次のような型を持っている。 getLine :: IO String putStrLn :: String -> IO ()純粋関数型である Haskell では getLine もやはり副作用はなく、getLine は一行読み込むという動作を表す値を常に返す。このように入出力の動作を表す値をアクションと呼ぶ。getLine が返すのは String そのものではなくあくまで IO String という型を持ったアクションであって、それを putStrLn の引数に与えることはできない。正しいエコープログラムの一例は次のようになる。 main :: IO () main = getLine >>= putStrLnここでは演算子 >>= によってふたつのアクションを連結している。このとき、main は一行読み込みそれを出力するというアクションとなり、このプログラムを実行すると処理系は main が持つアクションの内容を実行する。このアクションを実行すると、getLine は一行読み込み、それを putStrLn に渡す。このとき、読み込まれたデータにこれらのアクションの外側からアクセスすることはできない。このため、この式は参照透過性を保つことができる。モナドは、Freeモナド、Operationalモナドと呼ばれる構造により、より単純なデータ型から導出することもできる。これにより、非常に強力な依存性の注入が実現できる。
以下の単純な例は関数型言語としての構文の実例にしばしば用いられるもので、Haskell で示された階乗関数である。 fac :: Integer -> Integer fac 0 = 1 fac n | n > 0 = n * fac (n-1)階乗を単一の条件による終端を伴う再帰的関数として表現している。これは数学の教科書でみられる階乗の表現に似ている。Haskell コードの大半は、その簡潔さと構文において基本的な数学的記法と似通っている。この階乗関数の1行目は関数の型を示すもので、省略可能である。これは「関数 fac は Integer から Integer へ（Integer -> Integer）の型を持つ（::）」と読める。これは整数を引数としてとり、別の整数を返す。もしプログラマが型注釈を与えない場合、この定義の型は自動的に推測される。2行目では Haskell の重要な機能であるパターンマッチングに頼っている。関数の引数が 0であれば、これは 1 を返す。その他の場合は3行目が試される。これは再帰的な呼び出しで、nが0に達するまで繰り返し関数が実行される。ガードは階乗が定義されない負の値から3行目を保護している。このガードが無ければこの関数は0の終端条件に達することなく、再帰してすべての負の値を経由してしまう。実際、このパターンマッチングは完全ではない。もし関数facに負の整数が引数として渡されると、このプログラムは実行時エラーとともに落ちるであろう。fac _ = error "negative value"のように定義を追加すれば適切なエラーメッセージを出力することができる。
引数 f を伴う高階関数で表現された単純な逆ポーランド記法評価器が、パターンマッチングと型クラス Read を用いた where 節で定義されている。 calc :: String -> [Float] calc = foldl f [] . words   where      f (x:y:zs) "+" = y+x:zs     f (x:y:zs) "-" = y-x:zs     f (x:y:zs) "*" = y*x:zs     f (x:y:zs) "/" = y/x:zs     f xs y = read y : xs空リストを初期状態とし、f を使って一語ずつ文字列を解釈していく。f は、注目している語が演算子ならばその演算を実行し、それ以外ならば浮動小数点として計算スタックに積んでいる。次はフィボナッチ数列のリストである。ある値nに対するfib(n)は一回しか計算しないようになっており、その点ではナイーブなフィボナッチと異なる効率の良いコードとなっている。 fibs = 0 : 1 : zipWith (+) fibs (tail fibs)無限リストは 余再帰（リストの後ろの値は要求があったときに 0 と 1 の二つの初期要素から開始され算出される）によって実現される。このような定義は遅延評価の実例で、Haskell プログラミングでも重要な部分である。ただし、フィボナッチ数列の生成の場合は、ある要素の値が必要であれば、その要素より前にある要素の値は全て必要である。従って、遅延させた上で結局は後から全てその値を求めることになり、むしろ無駄であるので、この場合は遅延させない組込関数seqを使用したほうが効率は良くなり、fib 1000000 といったような値を計算するような場合には差が見えてくる。あるいはリストの先に出る値から順番に計算させるとそのほうが速い、といったことが起きる。（さらに、フィボナッチ数はnに対して2ⁿと大きな値になるので、そのようなBigIntegerの加算のコストも掛かり、以前にこの場所に書かれていたような「線形時間でのフィボナッチ数列の生成」は、大きい値では不可能である）どのように評価が進行するかの例示のために、次は6つの要素の計算の後の fibs と tail fibs の値と、どのようにzipWith (+) が4つの要素を生成し、次の値を生成し続けるかを図示したものである。 fibs         = 0 : 1 : 1 : 2 : 3 : 5 : ...                +   +   +   +   +   + tail fibs    = 1 : 1 : 2 : 3 : 5 : ...                =   =   =   =   =   = zipWith ...  = 1 : 2 : 3 : 5 : 8 : ... fibs = 0 : 1 : 1 : 2 : 3 : 5 : 8 : ...次はGHCで使える言語拡張で、リスト内包表記を並列的な生成を記述できるよう拡張するParallelListCompを用いて書いた同様の式である。（GHCの拡張は特別なコマンドラインフラグ、またはLANGUAGEプラグマによって有効にしなければならない。詳しくはGHCのマニュアルを参照のこと）{-# LANGUAGE ParallelListComp #-} fibs = 0 : 1 : [ a+b | a <- fibs | b <- tail fibs ]先に見た階乗の定義は、次のように関数の列を内包表記で生成して書く事もできる。 fac n = foldl (.) id [(*k) | k <- [1..n]] 1特に簡潔に書ける例として、ハミング数が順番に並ぶリストを返す以下のような関数がある。 hamming = 1 : map (*2) hamming # map (*3) hamming # map (*5) hamming     where xxs@(x:xs) # yys@(y:ys)               | x==y = x : xs # ys               | x<y  = x : xs # yys               | x>y  = y : xxs # ys上に示されたさまざまな fibs の定義のように、これはオンデマンドに数のリストを実現するために無限リストを使っており、1 という先頭要素から後続の要素を生成している。ここでは、後続要素の構築関数は where 節内の記号 # で表現された中置演算子で定義されている。各|は、等号の前半の条件部分と、後半の定義部分からなるガード節を構成する。
parsec は Haskell で書かれたパーサコンビネータである。パーサの一種であるがコンパイラコンパイラとは異なり、Parsec はパーサのソースコードを出力するのではなく、純粋に Haskell の関数としてパーサを構成する。yacc のようにプログラミング言語と異なる言語を新たに習得する必要がなく、高速でかつ堅牢で、型安全で、演算子の結合性や優先順位を考慮したパーサを自動的に構成したり、動的にパーサを変更することすらできる。派生として、大幅に高速なパースが可能なattoparsec、高機能でより洗練されたtrifectaがある。
QuickCheck はデータ駆動型のテストを行うモジュールである。自動的にテストデータを作成してプログラムの正当性をテストすることができる。
Haskell は他のプログラミング言語には見られない多くの先進的機能を持っているが、これらの機能のいくつかは言語を複雑にしすぎており、理解が困難であると批判されてきた。とりわけ、関数型プログラミング言語と主流でないプログラミング言語に対する批判は Haskell にもあてはまる。加えて、Haskell の潔癖さとその理論中心の起源に起因する不満がある。2002年に Jan-Willem Maessen、2003年にサイモン・ペイトン・ジョーンズが遅延評価に関連するこの問題を議論し、その上でこの理論的動機を認識した。彼らは実行時のオーバーヘッドの悪化に加え、遅延はコードのパフォーマンスの推察をより困難にすると言及した。2003年に Bastiaan Heeren と Daan Leijen、Arjan van IJzendoorn は Haskell の学習者にとってのつまづきに気がついた。これを解決するために、彼らは Helium と呼ばれる新たなインタプリタを開発し、この中でいくつかの型クラスのサポートを取り除き、Haskell の機能の一般化を制限することによってエラーメッセージのユーザ親和性を改善した。