読者です 読者をやめる 読者になる 読者になる

真面目なノート

こまめにその日の進捗などをメモしておく。

結構しんどくなってきた

今日のまとめ

  • プログラミング
    • 48時間でSchemeを書こう
  • 研究
    • 論文 A Survey of Mobile Phone Sensing
    • Swiftの勉強

プログラミング

48時間でSchemeを書こう

エラー処理と例外

48時間でSchemeを書こう/エラー処理と例外 - Wikibooks

ここ。中々強くモナドの存在を意識する部分だったように思う。
例外を表現するにあたってEitherモナドを利用したわけだが、これによる影響が他の部分にも出てくる。
その中で、returnで値をモナドに持ち上げたり、mapMを用いたり、型宣言を変更したりという作業を行ったので、モナドを利用するということがどういうことなのか、という点が少しは理解できたかな、と思う。

研究

A Survey of Mobile Phone Sensing

センシングプラットフォームとしてのスマホの働きについての調査論文であり、センシングによってどのようなことが可能になったか、またその際の問題点はなにか、というようなことがまとまっている。

  • バッテリー持続時間
  • CPU性能

等の性能的な問題が存在していることは勿論として、常に持ち運ぶスマホならではの、プライバシー上の問題なども存在するという点が中々面白かった。

Swift

研究の関係で、スマホのセンサーを用いてデータを取る必要があるので、そのためにSwiftの基本的な文法を勉強した。
基本的にはそこらのオブジェクト指向言語という感じなので、特に問題無く進められた。
Optional型がどうしてもクセモノだった。
Optional自体はHaskellのMaybeモナドのようなものなので、そこまで難儀はしないが、例えば以下のような書き方で使ったりする。

a.map{$0}

このmapの使い方とか、flatMapなるものの存在がイマイチうまく理解できなかった。
liftM的なものだと思うんだけど、どうも上手く使えない。

今日で大体の文法は学べたので、明日からデバイス側の操作をやって、とっととデータを取れるようにしておきたい。