komorebikoboshiのブログ

プログラミング記事(趣味レベル)が多め。

F#でズンドコした改造版

let zundokoSeq = seq{ let rand = new System.Random () while true do let x = rand.Next(2) (* 0がズンで1がドコ *) if x = 0 then printfn "ズン" else printfn "ドコ" yield x } zundokoSeq |> Seq.windowed 5 |> Seq.takeWhile (fun x -> x = [|0;0;0;…

F#でズンドコした

今更感あるけどF#でズンドコした。 type Zundoko = Zun | Doko (* F# 4.0より前のバージョンの場合 let rand = new System.Random () *) let rand = System.Random () let randomZunDoko () = if rand.Next(2) = 0 then printfn "ズン"; Zun else printfn "…

F#で謎カウンターを作るとき、let mutableでなくrefを使う(使っていた)のはなぜ?

これはF# Advent Calendar 201419日目のエントリーです。前日のエントリーはid:u_1rohさんの継続は力なり #FsAdvent - かたちづくりでした。 さて、タイトルに謎カウンターなる謎の言葉が出てきますが、クロージャについて調べたことのある人はなんとなくピ…

WindowsでVimのPythonインターフェースがうまく動かない時にまずチェックするべきこと

64bit版のVimに32bit版のPythonを合わせようとしていないか?(あるいはその逆) 揃えないとうまく動かない。

VS2013でFsYacc、FsLexを使う

Visual Studio 2013*1でFsYaccとFsLexを使うには、基本的に http://stackoverflow.com/questions/19781156/using-fslex-yacc-in-vs2013 の通りにすればいいのですが、2つほどハマったところがあったのでそれを書いておきます。 FsYacc、FsLexが参照するFShar…

Common LispでBMIを求めてみる

基礎プログラミング演習(1) - 技術memoのBMIを求める問題をやってみました。せっかくなのでよく知らないプログラミング言語を使ってみようと思い、また、最近On Lispを読み始めて興味がわいていたのでCommon Lispを使ってみることにしました。 演習問題1 と…

2014年1月のアクセス解析

とりあえずここまで

2013年12月のアクセス解析

Advent Calendar効果すごい

2013年11月のアクセス解析

ここに何か書かないと「続きを読む」が使えないのが

2013年10月のアクセス解析

Google Analiticsからテキストファイルにコピペ → 残念なスクリプトで処理 という感じなのでそろそろAPIの使い方を覚えたい。

2013年9月のアクセス解析

こうテーブルのヘッダ表示が残念な感じ

2013年8月のアクセス解析

アクセス解析と言いつつ数字晒してるだけです

2014年になりました

2014年になったということで元日エントリーです。一度書いてみたかった!*1 *1:去年の大みそかと正月は風邪でダウンしていた

FParsecでパーサコンビネータのお勉強

はじめに この記事はF# Advent Calendar 2013の18日目のです。ひとつ前の記事は@kos59125さんのDeedle で遊ぼう - 捨てられたブログです。 パーサコンビネータとは 文字列の構造を解析するプログラムをパーサと言いますが、パーサコンビネータはその中の一種…

PowerShellの関数の引数を補完する

PowerShellでこんな関数を書いたとして function Jump-Location{ param($Target) $jumpList = @{"SendTo"=([Environment]::GetFolderPath("sendto")); "StartUp"=([Environment]::GetFolderPath("startup"))} Set-Location -Path $jumpList[$Target] }こんな…

超簡単にMediaWikiをローカルで使えるようにする方法

注意 セキュリティ的にかなり問題がある方法だと思うので、普段はパソコンがインターネットにつながっていないという奇特な人*1のみ試してみてください。あと動いたのを確認したぐらいなので実用できるかはわかりません。 *1:私のことです

新しめのHaskellでWhitespaceをコンパイルする

プログラミング言語Whitespaceの本家サイトからHaskellで書かれたインタプリタのソースコードがダウンロードできますが、これをDownload Haskellから手に入れた最新のGHCでコンパイルしようとしても、なんかエラーが出てコンパイルできないですよね。そんな…

Seq.existsのお話

えーと、SORAHANEの次回作のティザーサイトが公開されましたね。 SORAHANE -ソラハネ-(リンク先18禁) とりあえず英語苦手なんで日本語情報を待ちます(お まだおまけシナリオやり終えてないんだよなあ。 それはおいといて。 F#にはSeq.existsという*1「シ…

2013年7月のアクセス解析

とりあえず先月分まで

2013年6月のアクセス解析

続きを読む記法(====)の前に何か書いておかないと続きを読むにならない?

2013年5月のアクセス解析

データのみです

2013年4月のアクセス解析

データのみです

数学の「群」がインターフェースに見えた

前に数学ガールを読んでいるってことを書いたけど、その中で群というものが出てくる。 群の定義(群の公理) 以下の公理を満たす集合を群という。 G1 演算*に関して閉じている。 G2 任意の元に対して、結合法則が成り立つ。 G3 単位元が存在する。 G4 任意の…

F#のfunction式への苦手意識が少しなくなったかもしれない

F#のmatch式、便利ですね! let rec fib n = match n with | 0 -> 0 | 1 -> 1 | x -> fib (x - 1) + fib (x - 2) こんな感じでパターンマッチが簡単に書けます。 さて、match式とよく似たものにfunction式というものがあります。 let rec fib = function | 0…

アクア、はじめました。

というわけでAQUA(リンク先18禁)をプレイ中。またのんびりやっていくつもり。さすがに最後にどばっと感想を書くのは疲れたので、途中途中で適当に書いていこうかな。

学ぶ!コンピューテーション式(3) ~return、return!

とりあえず分かるところから。 はじめに この記事はコンピューテーション式の解説記事ではありません。以下学ぶ!コンピューテーション式(1) ~let!とBind - komorebikoboshiのブログと同文です。 本編に入る前に このブログにもコメントしていただいたこと…

こころにひびく

数学ガール ガロア理論 (数学ガールシリーズ 5)という本を読んでいる(まだ読みかけだけど)。で、とある台詞がとても響いた。 あたしは――あたしは学びたいんです。せっかくこの世に生まれたのですから、しっかり学び、いったいどこまで人類がたどりついたの…

Javascriptでプログラミング言語Grassを実装してみた(限定版)

Javascript(JScript)でプログラミング言語Grassを実装してみました。ちなみに限定版というのは機能限定版という意味です。

動機の変化

一年前のコメントに返信しつつ思ったのが、その頃と今とではプログラミングをする目的が違うなあ、と。前は何かを作ることが目的で、そのためにプログラミングを勉強していたけど、今ではプログラミング(計算機科学)を深く知ることそれ自体が目的になった…

反省しました

えーと、実はコメントの返信を1年位放ったらかしにしていました。どう返信しようかと考えてるうちに時間がたって、なんとなく返しづらくなったのです。そのままズルズルと流されていたのですが、先日別の方にコメントをいただいて(これも返信遅くてすみませ…