タグ

ブックマーク / kmizu.hatenablog.com (10)

  • Hello, Dart (2) - パーザコンビネータ - kmizuの日記

    いつだったか、新しい言語を学ぶときのHello, Worldはパーザコンビネータを書くことにしてる、といった事を言った覚えがあります。実際、これまで学んできたたいていの言語でミニパーザコンビネータライブラリを書いてきました。というわけで、Dartでもパーザコンビネータライブラリを書いてみました。 もう何度も何度も書いてきたコードのため、考えるのは、その言語での標準的なデータ構造と関数に落とし込む方法だけです。というわけで、次のような感じになりました。クラスの定義方法とかコンストラクタの扱い、無名関数の文法、文字列の取り扱い、など基的なことを一度に学べるので、パーザコンビネータという題材はやはり良いなと思います(自画自賛)。 感想: 色々な面でかなりJavaプログラマフレンドリ。 適当にJavaっぽい文法で書くとそれなりにパーズしてくれる可能性が高い。 関数/メソッドの体が式であるときに

    Hello, Dart (2) - パーザコンビネータ - kmizuの日記
  • 自分のTwitterの使い方を考え直す - kmizuの日記

    自分ははっきり言って重度のTwitter依存症であり、何かあるとすぐTwitterを見る癖がついてしまった。まあ、それはいい。ただ、その使い方があまりにも節操がないので、いらんいざこざを招いているなと自覚するようになった。 たとえば、自分は、興味のある分野でキーワード検索をかけて、自分が妙だと思う意見をみつけたら、それが知人かどうかに関わらず容赦なく間違いの指摘や批判を行うし、見知らぬ人にいきなりメンション飛ばされても何も考えずに反応する。 最近になって、こういうの続けるのはどうも自分の心身に悪い影響を与えてるのではと思うようになったので、今後の自分のためのTwitter利用規約を設けてみることにした。これは自分の心身の健康を保つためであって、他の人のための規範ではないのでその点、勘違いなされぬよう。 顔見知りでない人にいきなりメンションを飛ばさない Twitterにツイートした内容は全世

    自分のTwitterの使い方を考え直す - kmizuの日記
  • 私のTwitterの使い方 - kmizuの日記

    Twitterを始めたのが自分のプロフィールみると2007年春ということなので、Twitterを始めてかれこれ9年になります。というわけで(?)、自分の普段のTwitterの使い方をいくつかに分類して振り返ってみようと思います。 ライフログとして これが自分の中では一番多い使い方かと思いますが、「帰ったー」とか「寝る」とか「起きた」「体調悪い」「二度寝する」「お腹壊した」「魚うまい」とかどうでもいいことも含めてとにかく色々書きます。この辺はもう反射で書くようになったので、誰かが読んでるとかほとんど意識にのぼっておらず、とりあえず自分のログを取る意味で付けています。 Instagramの写真も基的にライフログの一部として、Twitterでも共有するようにしています。 ちなみに、Instagram自体にTwitter連携機能があるのですが、これだとTwitter上ではインラインで画像が表示さ

    私のTwitterの使い方 - kmizuの日記
  • プログラミング言語基礎勉強会で発表してきます - kmizuの日記

    明日(6/11(土))に、こういう勉強会があるのですが、 xbase.connpass.com きょんさんから、出演依頼があったのと、これからあちこちでなんか発表したいなーという気分があったので発表することにしました。 タイトルは「私のプログラミング言語の学び方」です。ざっくり言うと、既存の、プログラミング言語の学び方に違和感があるので、その辺を言語化してみた、というような話です。だいたい、プログラミング言語の学び方というと 構文の丸暗記 とにかくサンプルプログラムを手を動かして打ち込んでいく という、どうも両極端アプローチがやたら目につく気がするんですが、そういうのって、1言語習得辺りの効率が悪いと思うので、もっと統一的な理解をするのがよいのでは、というやや強まった発表(の予定)です。 kmizu.hatenablog.com らへんの話をもうちょいふくらました感じというか。 というわけ

    プログラミング言語基礎勉強会で発表してきます - kmizuの日記
  • stripMarginの歴史 - kmizuの日記

    ScalaのString(正確にはStringOps)にはstripMarginというメソッドがあります。これは、主に複数行文字列に使われる機能で、たとえば、 """|class Hello { | |}""".stripMargin のようにすると、 res0: String = class Hello { } という文字列が得られ、行頭のスペースを除きたい場合に非常に便利な機能です。この機能、どうやらGroovyにもあるらしく、名前もまんまstripMarginです。さて、これ、GroovyがScalaのそれにインスパイアされたのか、それとも逆なのか調べていたところ、Groovyの過去のIssueにstripMargin()を追加するというものがあり、 [GROOVY-3349] Add stripMargin() to multi-line strings - ASF JIRA どう

    stripMarginの歴史 - kmizuの日記
  • Java Generics 導入の裏側 - kmizuの日記

    このエントリは、これまで自分がさんざんTwitterで書いてきたことですし、Martin Odersky教授へのインタビュー www.artima.com でおおむね語られていることでもあります。ただ、この辺の事情についてあまり詳しくない方も居るようなので、上記インタビューの引用を交えて、JavaにGenericsが入るに至った経緯や関連して活躍した人物についても書いてみようと思います。 事の始まりは1995年にJavaが発表されたことでした。これに触発された、Philip Wadler先生(世界的に有名なコンピュータ科学者)、Martin Odersky先生と同じ研究室に居た助手さん?がこれでなんかやってみないかと煽ったらしく、翌年の1996年には、JavaにGenericsや高階関数、ADTなど関数型プログラミング言語の機能を入れ込んだPizza言語をMartin Odersky先生が

    Java Generics 導入の裏側 - kmizuの日記
  • 過敏性腸症候群という病気 - kmizuの日記

    注意 以下は、お腹壊すとかそういう系統の話になりますので、苦手な方は読むのをご遠慮ください。 皆様、こんにちは。@kmizuです。そういえば、今日はScalaMatsuri 2016の2日目でしたね。私は何をしてたかと言えば、風邪&下痢で寝込んでいました。1日目もそうだったのですが、2日目は下痢で寝るのを妨害されたためかなり消耗しています。仮にもScalaMatsuri座長であるのに(今年は象徴座長みたいな面が強いですが(そもそも象徴にすらなっていたのか?))情けない限りです。 起きてみて、ふと唐突に、自分の持病である過敏性腸症候群について整理しておきたいなという気分になったので、これから書いてみることにします。だいたい個人の体験談であり、人によって症状の軽重は違うので私の症状が過敏性腸症候群を代表していると思わないでください。あとまあ、同情してもらう程の大層な病でもないと思っていますが、

    過敏性腸症候群という病気 - kmizuの日記
  • IOと例外の取り扱いについて:どっちが良いスタイル? - kmizuの日記

    追記:Java 7以降(つまり、現在)はtry-with-resources構文があるので、それを使えばよいです。ここでは、Java 6かそれ以前のコーディングスタイルについて主に言っています。 kmizu.hatenablog.com におけるkrxrossさんのコメント java脳だと、「fw = new PrintWriter(new File(file))」で例外が発生したら、fwが不定のまま、finally句の「fw != null」で困ってしまう。 そうならないために、nullで初期化するという話に見えます。 多分JAVAだと、nullを代入しないとコンパイルエラーになるか、eclipsが警告を出したと思います。 scalaでも同じではないですか ? 良く解っていない超初心者より を見て、強烈に不安になってしまったのですが、Javaだとこういうのが良いスタイルなんでしたっけ?

    IOと例外の取り扱いについて:どっちが良いスタイル? - kmizuの日記
  • OpenJDK javacにみるMartin Odersky氏の痕跡 - kmizuの日記

    Martin Odersky氏と言えば、Scalaの開発者として有名ですが、そんな彼がJDK 1.3以降のjavacの作者でもある(ただし、その時点ではジェネリクスはオフであった)ことは知る人ぞ知る話になっています。 さて、ということは、OpenJDKのjavacのソースコードにOdersky先生の痕跡が残されているのではないかと思い、ちょっと調べてみたところ、テストコードにもろそのものがありました。 jdk8u/jdk8u/langtools: 84061bd68019 /test/tools/javac/generics/odersky/ ディレクトリ名がoderskyとかマンマですね。ジェネリクスのテストに痕跡が残っているというのも、いかにもOdersky先生らしいところです。 特にオチはありません。

    OpenJDK javacにみるMartin Odersky氏の痕跡 - kmizuの日記
  • 勉強会ドタキャン問題について運営側の立場で考える - kmizuの日記

    conpass.com、partake.in、atnd.orgといったサービスで、特に無償の勉強会のページを作って参加者を募ったとします。すると、一定以上の規模のイベントでは少なくない割合で、当日になってからキャンセルの連絡(だいたいボタン一発でできるようになっている)もせずに不参加な人が出ます。これは、数年前にも議論されてて、「勉強会 ドタキャン」でぐぐると色々な議論が出て来ます。 ここでは、一応それなりの数の勉強会を主催した事のある立場(あるいは運営側)としてこの問題に対してどう対処すべきか、改めて考えてみようと思います。結論を先に述べると、このようなサービスを利用したときに一定割合のキャンセルが出るのを前提とした上でその場合に余計な手間がかからないような方法を取るべき、というのが私の主張です。 確かに、最低限の連絡なしのドタキャンは懇親会の予約変更を初めとした主催者の負担になりますし

    勉強会ドタキャン問題について運営側の立場で考える - kmizuの日記
  • 1