Help us understand the problem. What is going on with this article?

PureScript by Example 1 章を読む

More than 3 years have passed since last update.

この記事は (bouzuya) PureScript Advent Calendar 2016 の 5 日目です。 (bouzuya) PureScript Advent Calendar 2016 は bouzuya の PureScript 学習の記録です。

概要

今日からは PureScript by ExamplePureScript Language Guide を見ながら進めていきます。

PureScript by Example には @hiruberuto 氏による翻訳 (へのリンクとその紹介) があります。2016-12-05 時点では PureScript 0.7 向けのものの翻訳になっています。この記事にも書いてありますが、 PureScript 0.10.2 とは非互換の部分が多数あるので、注意が必要です。

ちなみに、ぼくが PureScript by Example を読んだのは 0.9 向けの分なのですが、先日 ( 2016-12 に入ってからだったかな ) 、0.10 向けの PureScript by Example が公開されました。きちんと保守されていて素晴らしいです。ぼくは購入済みだったので、メールで更新の通知がきました。

PureScript by Example 1.1

JavaScript での関数型プログラミングを紹介しています。関数型プログラミングの強力さに触れつつも、 JavaScript でそれをしようとすると冗長さ・型付け・強力な抽象化を欠いているので、問題があると書かれています。

PureScript はその問題を解決するためにあるようです。軽量な構文・強力な抽象化を提供する型システム・読めるコードを高速に生成・ JavaScript との相互運用などの特徴があると書かれています。

言語の特徴だけで言えば、www.purescript.org のページ下部にキーワードで書かれていますね。

  • Algebraic data types
  • Pattern matching
  • Type inference
  • Type classes
  • Higher kinded types
  • Rank-N types
  • Extensible records
  • Extensible effects
  • Modules
  • Simple FFI
  • No runtime system
  • Human-readable output

まとめとして、 PureScriptは純粋関数型プログラミングの理論的な能力さと、fast-and-loose な JavaScript のプログラミングスタイルとの間で、実用的なバランスを取れているとのことです。

ふむ。

PureScript by Example 1.2

翻訳をしたいわけではないので、要約のみで飛ばしていきます。

  • PureScript は静的型付け言語 (statically typed language) です
  • PureScript は ML や Haskell の型に影響されています
  • PureScript は型推論 (type inference) をサポートしています
  • PureScript は Haskell で知られる型クラス (type classes) を提供します

ふむ。

PureScript by Example 1.3

  • 関数の型などを提供することで、既存の JavaScript をインポートできます
  • 開発の一部分にだけ PureScript を使うこともできます

ふむ。

PureScript by Example 1.4

  • PureScript by Example の前提条件について
  • PureScript のコンパイラーはバイナリーでダウンロードするか Haskell の最新環境でソースからビルドできます
  • PureScript by Example は PureScript 0.10.* を対象にします

ふむ。

PureScript by Example 1.5

  • PureScript by Example の読者について
  • JavaScript の基礎は知っている前提
  • NPM や Gulp のような JavaScript エコシステムを知っていると標準設定をカスタマイズするのに良いですが、必須ではありません
  • 関数型プログラミングの事前知識は必須ではありません
  • Haskell に慣れていると考え方や構文が分かるでしょうが、同じだとは思わないほうがいいです

ふむ。

PureScript by Example 1.6

  • 読みかた
  • 各章ごとに完結していますが、まずは前から読むと良いです
  • 関数型プログラミングの考え方に慣れているなら、前半を読まなくてもある程度の理解を得られます
  • 各章は新しい考え方のための動機づけとしてひとつの実用的な例に焦点をあてます
  • PureScript 初心者への導入を目的としています

ふむ。

PureScript by Example 1.7

GitHub の Organization は読み飛ばしていた。実例を見るうえで良さそう。

PureScript by Example 1.8

ふむ。フォローしました。

PureScript by Example 1.9

  • 謝辞

スルー。

まとめ

1 章は概要だけでほとんどコードが出てこなかったので微妙でした。あと翻訳っぽくなるの良くないので、次から避けます。GitHub の organization あとで見ます。

次回以降の TODO

bouzuya
ぼく、ぼうずや。なさけはひとのためならず。たのしいはせいぎ。
http://bouzuya.net/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした