2020-01-01から1年間の記事一覧

learn-satysfiの紹介

これは「SATySFi Advent Calendar 2020」の25日目の記事です。 24日目はmonaqaさんによる「今年作ったパッケージを振り返る」でした。 21日目のgfnさんの記事がまだ出ていないですが、一応25日目を迎えることができましたね!(遅刻しましたが……) SATySFi A…

SATySFiでトンボと裁ち落としを設定するパッケージを作った話

これは「SATySFi Advent Calendar 2020」の6日目の記事です。 5日目はmonaqaさんによる「SATySFi で湯婆婆」でした。 6日目はabenoriさんのSATySFiで可換図式です。 「ネタがないなら今年作ったパッケージについて語ろう」ということで、自作パッケージを宣…

SATySFiでルビを使う~SATySFi-rubyパッケージ~

これは「SATySFi Advent Calendar 2020」の1日目の記事です。 2日目はmatsud224さんによる「Satyrographos Package Index の紹介」です。 とうとう始まりましたSATySFi Advent Calendar 2020。 楽しんでいきましょう! 今回はSATySFiでルビ(振り仮名)付き…

SATySFi Conf 2020まとめ

はじめに SATySFi Conf 2020が7/25に行われました。 参加してくださった皆さん、ありがとうございました。 さて、SATySFi Conf 2020で行われた発表の簡単なまとめを作成しました。 発表しているところを撮影した動画とスライドへのリンクをそれぞれ貼ってい…

超高機能電卓を作る(1日目)

手を動かして一から作ってみないとわからないことが多いので、Rustで電卓を作ることにしました。 目標は実質プログラミング言語になるくらいまで機能を与えることです。 完成するころにはすべてを忘れていそうなので、何か機能を作ったらメモ代わりに記事を…

Rust用のLL(1)トークンパーサジェネレータを作った話

概要 構文と抽象構文木へ変換するコードが書かれたファイルを与えることで、Rust用のLL(1)のトークンパーサを自動生成することができるソフトウェアを作りました。 名前はとりあえず"llmaker"にしています。リポジトリはpuripuri2100/llmakerです。 構文等を…

SATySFiパッケージでユニットテストを行う方法

概要 assert-eqパッケージ・debug-show-valueパッケージ・GitHub Actionsを組み合わせることでSATySFiにもユニットテストを導入することができます。 参考になる記事へのリンク assert-eqパッケージについては「SATySFiでテストをするためのパッケージ」を、…

SATySFiでテストをするためのパッケージ

概要 自分が作成したassert-eqというパッケージを使用することで、関数のテストが簡単に行えます。 インストール方法 使用しているプリミティブの都合で、SATySFi v0.0.4以降でないと行けません。 Satyrographosを使う場合 $ opam update $ opam install sat…

SATySFiでlistやoptionなどを文字列化して表示する方法

概要 自分が作成したdebug-show-valueというパッケージを使用することで、リストやオプションなどを簡単に文字列化できます。 自分の作った関数のデバッグ用にとても便利です。 インストール方法 Satyrographosを使う場合 $ opam update $ opam install saty…

SATySFiでローマ数字・漢数字に変換する方法

概要 自分が作成したnum-conversionというパッケージを使用することで、ローマ数字変換・漢数字変換を楽に行うことができます。 インストール方法 注意事項 このパッケージではstring-explodeというプリミティブを使うので、2020/2/22以降のHEAD版が必要です…

絵文字結合を実装する

先日、SATySFiで絵文字の結合を実装したので、そこで得た知見をまとめたいと思います。 絵文字結合とは 世の中に絵文字はたくさんありますが、それだけでは飽き足らなかった人類は「絵文字を合字みたいに結合させて新しいものを作ってしまえばよくない?」と…

SATySFiで文字列を分割する方法の速さを調べてみた

はじめに SATySFi v0.0.4でstring-explode: string -> int listというプリミティブが追加されました。 これは文字列をユニコードポイントのリストにするもので、これによって文字列の分割や比較が楽になりました。 文字列を一文字ずつのリストにすることは結…