My Favorite Things - Coding or die.

とある技術者の経験記録、的な。

2016-01-01から1年間の記事一覧

Vagrant + CentOS7 で、RustのWebフレームワークRocketを発射する

Linuxとか環境面詳しくないのでメモ。 Rocketは最近出たRustのWebフレームワーク。 https://rocket.rs 環境 VirtualBox: 5.0.30 Vagrant: 1.9.1 CentOS: 7.1 Rust: 1.16.0-nightly Rocket: 0.1.2 ちなみにこれを書いている時点で最新のCentOSは7.3だったけれ…

Swift3: バージョン番号を楽に比較する

なんか面倒だったので書いた。 これがSwift使いの戦い方。たぶん。Swiftコンパイラに詳しくないけど、こういった構造体でラップするだけのコードって最適化後はゼロコストになるのかしら? (Haskellのnewtypeはゼロコストだったはずだけど)

SwiftでApplicative Style

書いたことなかったので書いてみた。 我流なのでいい感じに出来てるかは微妙だけどApplicative Styleがパーサ周りで有効活用できるという確かな実感は得られた。 Swift 4で(?)ジェネリクスが強化されれば、Haskellの型クラスのようにProtocolでもジェネリ…

iOSオールスターズ2に参加してきた感想

帰ってブログ書くまでがイベントって言われたので書くよ! eventdots.jp ブログなので当然ですけれど、私が思ったことをそのまま書いてます。 (とりあえずファーストインプレッションをダンプしてきます) あ、登壇者の皆様、本当に貴重な情報をありがとう…

Qiita記事「Haskell チュートリアル (Haskell Day 2016)」を読んでメモ

以下を読んでメモ。 Haskell チュートリアル (Haskell Day 2016) から学んだこと http://qiita.com/hiratara/items/169b5cb83b0adbfda764 Shell以降は新しいことばっかりだったのと、元記事の完成度が高すぎて途中からは殆ど写経みたいになってしまった。 基…

Haskell :: CSVフォーマッターを書いてみた

勉強がてら試しに書いてみた。 なんというか・・・以外と難しいね!! ちなみに全角文字に非対応なのでそのうち。

AtCoderに挑戦 - ACR001、ACR002 :: Haskell

関数プログラミング実践入門の巻末に載っていたAtCoderにHaskellで挑戦してみた。 001は、sortとgroupを活用すればすぐ出来ることが分かった。002は、すごいH本に載っていたチェス盤のナイトのコードを参考にして、リストモナドを使って解いてみた。実際にコ…

関数プログラミング実践入門 メモ - 第4章 評価戦略

関数プログラミング実践入門の4章「評価戦略」を読んだので簡単にメモ。 遅延評価(lazy evaluation) 実際に使うまで計算しないという計算順序の規則 たらい回し関数(竹内関数)は、積極評価だと実行に時間がかかり、遅延評価だとすぐ完了する関数(の例)…

Advanced Swift メモ - 8. Error Handling

8. Error Handling Swiftにはいくつものエラーハンドリングの仕組みがある。 Optional、はシンプルだがエラー情報は返せない。 Assertion、はバグを早期発見するために利用できる。 例外、はOptionalと違い詳細なエラー情報を持てる。 CollectionTypeのfirst…

Advanced Swift メモ - 2. Introduction (1)

Advanced Swift を読んでのメモ。 www.objc.io 英語レベルは低いので間違っている箇所は普通にあると思います。 Swiftはあなたが選択したプログラミング言語と似ているように見える。 低レベルなビット操作(とパフォーマンスチューニングができる点)は、C…

Carthageコードリーディング::3日目

さて3日目。 前回は「VersionCommand」まわりの実装を見た。 今回は実際にコマンドを実行している周りを見ていく。 エントリポイント(復習) 1日目でも触れたが、エントリポイントであるmain.swiftの以下でhelpコマンドをデフォルトに実行している。 regist…

Carthageコードリーディング::2日目

今回は一番簡単であろう「version」コマンドを見ていく。 VersionCommand 登録 前回も触れたが、main.swiftでCommandRegistryに各コマンドを登録している。 // main.swift let registry = CommandRegistry<CarthageError>() registry.register(VersionCommand()) 「version</carthageerror>…

Carthageコードリーディング::1日目

Swift力を上げるために、Swiftで書かれたパッケージマネージャ「Carthage」のコードリーディングを始めてみる。 github.com 準備 まずはGitHubリポジトリをclone。 $ git clone https://github.com/Carthage/Carthage.git 次に依存ライブラリをインストール…

CookieClicker v2.0 - クッキーを自動クリック

風邪を引いて体調悪いので、自動クリックに対応してみた。 これでよりたくさんのクッキーを焼けるぞ!やったね!!追記(2016/06/26): 久しぶりに実行したらAddEventでエラーになっていたので修正。

Haskell :: mapとfilterをfoldrで実装してみた。

Functional Programming in Swift で 同様のコード例があったのでHaskellでも書いてみた。 関数プログラミング実践入門で、「筆者がfoldrの方が好きなので」的な記述があったけれど、consリストで畳み込むコードを考えると、確かにfoldrの方が自然に感じる気…

関数プログラミング実践入門 - ランレングス復号化を書いてみた

ランレングス圧縮が例題として載っていたので、練習がてら復号化を書いてみることに。とりあえず書けたのだが。 安全でないreadを使っているのはさておき、なんだろうこの微妙感は。追記(2016/05/05): `let`を活用することで少し読みやすくなった。冗長だ…