Enumでシーザー暗号、もしくは既知の型のインスタンス一部変更

Enumクラスのメソッドsucc, pred使うとシーザー暗号簡単に書けそうですよね。 succはsuccessorの略で、次に続く値を返してくれます。 数値の場合はインクリメントした値を返します。 predはpredesessorですね。数値ではデクリメントした値を返します。 caesa…

Template Haskell入門

Template Haskell(以下TH)超入門です。 まあ入門するのは僕ですが。 Haskellの易しいエントリがあまり見あたらないため、僕が書いていくことにしようとか考えたり。 続き よかったらこちらもどうぞ。 続・Template Haskell入門 -- QuasiQuotes編 - think and…

オライリー半額セールで色々買った!!

Erlangプログラミング 検索と発見のためのデザイン プログラミングF# リファクタリング・ウェットウェア アート・オブ・SQL アート・オブ・アジャイル デベロップメント インターフェイス指向設計 プロダクティブ・プログラマ ThoughtWorksアンソロジー ソフ…

誰でもできる「5秒でわかる世界で最も正確な性格テスト」の作り方

MSN ニュース はてなブックマークを見るとみんな口を揃えてバーナム効果、バーナム効果て。皆がバーナム効果大好きなことはよくわかったよ。 でもたまにはバーナム暗号のことも思い出してあげてください。 バーナム暗号 - Wikipedia 完全暗号ですよ。解読者…

ほしい

「MacBook Air 11インチ欲しい!」 僕はエンジニアであり、世界を色々面白いように変えてやるのでください。 ただ僕はMacbook Air 11インチのCPU1.6GHzでRAMを4GBにしたやつが欲しいため、自分の分は自分で買います。 なので実際にもらったら両親に進呈しよ…

Haskellの壁

この記事はHaskell Advent Calendarのために書いたものです。 先ずは自己紹介でも。 大学の専門は機械でした。制御システム工学。まあ情報(工学|科学)科ではないということです。仕事で使っている言語はPHP。実用主義的な言語ですね。Haskellとは正反対です…

HtmlのパースをHaskellでさっくりやってみようと思っていた

Parsecの練習。 タグだけパースして他全て捨てているから役に立たないどころではないのだけど。あと世の中には閉じられていないタグが多過ぎるからやはり使えない。閉じないタグに対応するの面倒だな。タグ毎に対応しないとか。 データ型で悩んだ。タグ内の…

StringのParse

Write Yourself a Scheme in 48 Hours/Parsing - Wikibooks, open books for an open world Haskellのこれをやっているのだが、 parseString :: Parser LispVal parseString = do char '"' x <- many (noneOf "\"") char '"' return $ String x これを改良し…

継続は力なのか。

「継続は力なり」ということわざがあるけれども、継続から純粋に期待出来ることといったら「慣れ」くらいしかないと思う。 慣れとはつまり、出来ることがよりスムーズに出来る様になることであって、出来ないことを出来るようにしてくれる訳ではない。 継続…

instance宣言練習

Haskellの型クラスあたりは幾ら説明読んでもよくわからんから試してみた。 二分木(Tree)つくってderivingせずにinstance宣言?練習。 ReadクラスとApplicativeクラスが結構迷った。 Applicativeはとりあえず型エラーは出なくなったが使い方がいまいち分から…

read

main = print $ read "100" :: Int これがエラーになって main = print $ (read "100" :: Int) こっちは通るのがいまいち良く分からなくて悩んだ。 どうやら main = (print $ read "100") :: Int このようにパースされるらしい。だからIntとIO ()がマッチし…

ifのコスト

にわかに気になったので

PHPで全要素にアクセスするには

普通forやforeach使いますが。array_shift,array_popという手もありますね。 俄に気になったのでパフォーマンス比較。

PHPのオブジェクトキャスト

arrayオブジェクト化してもアクセス方法は同じだし、foreachに渡せる分そっちのほうが良いんじゃないだろうか。ああ。だけどオブジェクト化した配列foreachに渡すとか頭悪そうだね。とか思っていたらネイティブに配列のオブジェクトキャストというものがある…

PHPで配列に安全にアクセスしたいだけだが

2010.09.18追記 多次元配列に対応してみました。 phpにおいて配列とは、生成時にarray()とかいう妙なリテラル*1を書くことを強制されるためそれだけで既に書くにも読むにもだいぶ残念ではあるが、加えて連想配列との境がないために挙動が予想つかないarray_*…

括弧無しゴルフ in Haskell

http://e-arrows.sakura.ne.jp/2010/08/is-lisp-really-has-too-many-parenthesis.html 新しい制限が加わっていますね。 ということで角括弧もなくします。 main = mapM_ uncurryp $ take 21 $ zip from0 $ scanl times 1 from1 where p i n = putStrLn $ sh…

ヒアドキュメントとデフォルト引数

ちょっとわらっ

ヒアドキュメントと引数と

ちょっとわらった

言葉と思考の距離

小説を早く読むにはどうしたらいいかと考えた。 遅くなる原因はオブジェクトの生成ではないかと思いついた。 つまりは新しい登場人物が出てきて、それを頭の中で自由に動けるように描写するまでが大変なのだと考えた。 だったらあらかじめキャラクタを生成し…

TL

最近すげえ。 今日タイムラインを手に入れた。twitterは関係ない。 これで人間という自分以外の全ての静的なオブジェクトに主観タイムラインが搭載されるわけですよ。感情という状態を持って動的に動き回るわけですよ。別世界もいいとこ。 今までの自分の不…

あなたがHaskellを使った方が良いただ一つの理由

あなたの思考が穴だらけだからである。 その穴だらけの思考を具現化して何になるというのだ。 遊びならいいが仕事では駄目だ。デバッグに手間がかかりすぎる。 では何故Haskellか? Haskellは包括的な記述をあなたに要請するからである。 以下はHaskellのif…

コメント

とりあえずコメントには2種類あるとわかった。 コンテキスト外から理解出来るものと、出来ないもの。 コンテキスト内じゃないと理解出来ないコメントって他の人もわからんし3日後の自分もわからないんじゃないだろか。

2次元配列dump

<td>' .implode ('</td><td>', $row) .'</td></tr>'; } return '<table>' . implode(' ', $hoge) . '</table>'; } こんな感じでダンプしてくれないものかね。var_dumpで多次元配列みてもなー。 まあケースバイケースだけど。

よい出会いは俺の人生など簡単に

その出会いが大学であったことを考えると、大学も悪くなかったかと思ったり。 今度は俺が導く番か。

ParsecでPHPのパーサを書こう

ということで書いていきます。Parsec/Haskellで。何故PHPかと言ったら使ってるからです。何故Haskellかといったら好きだからです。 では先ずはIntとDouble。 +-符号を考慮して、Intは8進法と16進法を考慮して。 PHPにNumber型とか多分無いですが、IntとDoubl…

靴がいい。

最近靴がいいと思い始めた。靴自体のデザインや何やらに凝るのもいいけど、履き心地*1がなんといってもいい。 部屋の中でも靴を履きたいと思う。靴と靴下によって足が適度に締め付けられるのがいい。靴を履きたいがため外に出たいという人がいたらすごい共感…

http://anond.hatelabo.jp/20100225163000個人的には小学校なんて計算が出来れば良いわけだから、小学校の先生には 「意味は今はわからなくても良い、解けるようにはなってくれ、この先この計算方法の理由や意味は君らの人生の中で少しずつ理解して行くだろ…

10分コーディング

たまたま目についたのでやってみた。 10分でコーディング | プログラミングに自信があるやつこい!! main = print $ cards 4 "123412341234123412" cards n str = [ [str!!m | m<-[0..len-1], m`mod`n == i] | i<-[0..n-1] ] where len = length str - le…

Haskell基礎文法最速マスター

見ていただけるのは嬉しいですがこのエントリは十分古いため、新しい情報へアクセスをしてください。以下の本をお勧めします。 すごいHaskellたのしく学ぼう!作者: MiranLipovaca出版社/メーカー: オーム社発売日: 2017/07/14メディア: Kindle…

iPadが出たので次世代ソフトウェアキーボードを考えてみた

タイピングする前に親指以外の8本を置きます 指置いたとこ(赤い点)をそれぞれqwertyにおける"asdfjkl;"キーを生成します 赤い点の上下(黄緑と橙の点)も同様にqwertyに対応したキーを生成します qwertyと同様にタイピングします 要はタイピング前に手に合わせ…