fetburner.core

コアダンプ

ちょっとだけクイックソート

よい実装かどうかは抜きにして、一般的な関数型言語ではリストに対するクイックソートを簡単に書く事ができます。 一方、そのようなよく見かける実装ではリストの結合を再帰内で用いていますが、 一般に関数型言語ではO(n)の時間計算量を要するため、リストの結合を用いる事はよくないとされています。

今回はアキュムレータを用いる事でリストの結合を用いずにクイックソートを実装したいと思います。

続きを読む

モータドライバの設計

動機

昔、モータードライバを自作しようと試みた事がありました。しかし、自作のドライバはロボコンで用いられていた既製品に対して信頼性で劣っており、既製品の出力に不満が無かったために置き換えられませんでした。

続きを読む

簡単な式の評価器を証明駆動開発

 EvalML1Errにおける評価の全域性の証明でML1*1のすべての式に評価される値が存在することが分かったので、式を評価する関数書いてみたいと思います。また、せっかくCoqで書いたので関数が妥当であるかの証明とOCamlソースコードの出力も行おうと思います。

*1:プログラミング言語の基礎概念に登場する、MLのサブセットのような言語

続きを読む