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

チラシの裏

プログラミングとか色々

演算子順位構文解析

普段日常生活を営んでいると何となくコンパイラを作りたくなる事はありませんか?僕はあります。 演算子順位構文解析を用いることでStandard MLで行なわれているような演算子の順序の入れ替えを実現できるのではないかと思い、試しに実装してみました。

続きを読む

LCF MLについて

この記事はML Advent Calendar 2014 24日目のために書かれました。

Standard MLをはじめとするML系言語の始祖として、よくLCF MLの名前が挙げられます。 ここでは、LCF MLの言語機能について解説しつつ後の言語に与えた影響について思いを馳せたいと思います。

続きを読む

SMLでソート

この記事はML Advent Calendar 2014 8日目のために書かれました。

多くの言語においてソートは標準ライブラリで提供されていますが、Standard ML Basis Libraryにはソートを行う関数が存在しません。 処理系依存で良ければSML/NJのListMergeSort.sortの様に用意されている場合もある様ですが、 ここでは別の方法を考えたいと思います。

続きを読む

ニュートン法とDKA法の実装

大学でニュートン法DKA法で方程式の解を求める課題が出たので、今回は趣向を変えてStandard MLで実装しました。

続きを読む

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

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

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

続きを読む

CoqからSMLへ

CoqにはExtractionという機能があり、Coqで書かれたソースコードから対応する他の言語のソースコードを出力する事ができます。今回はそのExtractionをStandard MLに対応させた事について書こうと思います。

続きを読む

貧乏帰省の顛末

現在東北の大学に通っているんですが、実家から遠くに住んでいると帰省の交通費が馬鹿になりません。*1そこで、何とかして安く帰ろうとしたのですが一悶着あったという話。

*1:仙台高松間を新幹線で往復すると5万円程度にもなる

続きを読む