kmizuの日記

プログラミングや形式言語に関係のあることを書いたり書かなかったり。

2016-10-01から1ヶ月間の記事一覧

Scala初学者はvarを使っても良い

TwitterでScala関係のつぶやきをみていると、どうも、特に初学者の方に、 varを使ってはいけないので、Scalaは難しい… という意見が散見されるようです。 しかし、Scalaを学び始めのときにいきなりvarを断つ必要はなく安心してvarを使ってもいいと思います …

Elixirを学んでみる(1) - parser combinator

最近、Elixirがなんとなく盛り上がってきている気がするので、この機会に入門してみることにした。お題は相変わらずparser combinator。解説はめんどうくさいのでコードだけ貼り付けておく。 わかったこと。 Elixirの文法は結構くせがある。文法はRubyに影響…

Kotlinの謎(解明編)

今日書いた kmizu.hatenablog.com についてですが、原因がわかりました。まずは以下のコードを見てください Welcome to Kotlin version 1.0.0 (JRE 1.8.0_91-b14) Type :help for help, :quit for quit >>> val a: () -> Int = { 2 } >>> val b: () -> Unit …

Kotlinの謎

Kotlinという言語の型システムは凄くおおざっぱに言ってしまうと、Scalaと非常によく似ています。 TopがAny BottomがNothing Byte, Short, Int, Float, ....といった、プリミティブ型相当の型が継承階層に組み込まれていて、型名まで同じ Generics Declarati…

Macro PEG 0.0.10 リリース

かなり久しぶりのリリースです。主な変更点は、 Conflict between an expression parenthesis syntax and call syntax · Issue #16 · kmizu/macro_peg · GitHub を修正した点でしょうか。これで、 STRING = STRING_MACRO("\"") / STRING_MACRO("'"); STRING_…

Scalaの学習コストを下げるための心得

追記:Twitterで、「それって、言語マニアにしかできない技のような気が」という指摘を受けました。自分としては一般的に適用可能な話だと思っていますが、あるいは自分の感性が著しくずれているのかもしれません。その辺承知の上でお読みください。 Scalaは…

これまでの人生で一番、死を身近に感じたときのこと

とても物騒なタイトルがついていますが、別に自殺しかけたとか事件に巻き込まれたという話ではありません。 大学1年生の夏(2002年)の事でした。当時、筑波大学1年生だった自分は、サークル(?)の先輩たちとともに、今ではガルパンの聖地として知られて…

Scalaアンチパターン:変更可能コレクションをvarとして宣言する

Scalaは最初から関数型プログラミングのスタイルで書くことを意識して設計されたという意味で関数型プログラミング言語と言えますが、一方で、「Better Java」な手続き型スタイルで書くことも基本的には否定されるべきではないと思います。たとえば、ビッグ…