星にゃーんのブログ

ほとんど無害。

Malgo

Haskellのsomeを正格評価したら無限ループする話

パーサコンビネータなんかでよく使う、 some と many という関数があります。それぞれ引数を1回以上/0回以上実行して結果のリストを返す関数で、これの単純な定義は some v = (:) <$> v <*> many v many v = some v <|> pure [] となります。 some は v : …

Malgo開発記録:型シノニムとimport

github.com はじめに この記事は『第39回 #hiro_it』と『プログラミング言語処理系が好きな人の集まり 第3回定期ミートアップ』での発表資料を清書したものです。 『プログラミング言語処理系が好きな人の集まり』は、 プログラミング言語処理系が好きな人…

地味なバグと誰かの囁き声

最近(ここ数年?)malgoというプログラミング言語を作ってる。 今日、地味なバグを見つけた。厳密にはバグじゃない気もするんだけど、ユーザーの直感に反するような挙動をする。 例えば、Eitherを定義するとする。 data Either a b = Left a | Right b; す…

自作プログラミング言語Malgoがかなりそれっぽくなってきた

プログラミング言語Malgo 2017ごろから、自作のプログラミング言語Malgoとそのコンパイラを作っている。 2018年の2月に、このことをブログに書いた。 あれから三年経ち、色々とできることが増えた…かというと、そうでもない。 しかし、言語設計はかなり変わ…