Elmメモ

Elm

Elmを入門して幾らか経ち,学びがあったのでこの記事にまとめます.書き忘れがあったら随時内容を追加していく. elm-jp というDiscordサーバーがあり,この記事にはそのサーバーで教えてもらったことが幾つか含まれている.感謝します. コードのうち,文脈…

帰納法と余帰納法にまつわる伝承

これはAmusement Creators Advent Calendar 2017の14日目の記事です. adventar.org 最小不動点と最大不動点のよく知られた話とか時相論理に絡めた話をゆるゆるっとするつもりです. 分かりにくかったり変なことを言っていれば気軽にご指摘ください. 記事を…

C言語で関数のオーバーロード

これはAmusement Creators Advent Calendar (ACAC) の6日目の記事です. adventar.org C++やC#にあってC言語にはない機能の一つにオーバーロード (overloading) というのがあります. これはC言語でもCPP(CPreProcessor)を使えば限定的ではあるけれどもオー…

XeLaTeXやLuaLaTeXでascmac.styのitemboxやscreenを使うとき

覚え書き XeLaTeXやLuaLaTeXでは\tbaselineshift(縦組の和欧文のペースラインの位置調整)が定義されていないのでascmac.styのitemboxやscreenを使おうとすると ! Undefined control sequence. \screen ->\@savetbaselineshift \tbaselineshift \tbaselineshi…

OCamlのannotファイルの読み方

ocamlcやocamloptでnyan.mlを-annotオプションを付けてコンパイルするとnyan.annotファイルが生成される。 このファイルにはコンパイルするときに得られた識別子のスコープとか式の型とか関数呼び出しが末尾再帰かそうでないかとかの情報が含まれています。…

WebAssembly手書き (wast) で簡単なSTGを作った

WebAssembly (wasm) のテキスト表現でwastというものがある。 僕の所属しているAmusementCreatorsの48時間ゲームジャムでこのwastをがりがり書いて簡単なSTGを作った。 デモはこちら https://akitsu-sanae.github.io/works/wast-game/index.html ソースコー…

C/C++の可変長引数マクロで引数の数でオーバーロードしたい

#define SELECTER(_1, _2, SELECT, ...) SELECT #define FOO(...) SELECTER(__VA_ARGS__, WAN, NYAN) (__VA_ARGS__) FOO(neko) // expanded to `NYAN (neko)` FOO(inu, dog) // expanded to `WAN (inu, dog)` 参考 c - Overloading Macro on Number of Argum…

RustでArrayにcollectしたい

Rustで以下のコードは違法 (0 .. 9).map(|i| i*i).collect::<[i32; 10]>::() これは配列がFromIteratorを実装していないため. こういう時はArrayVecを使う. 取り敢えずCargo.tomlのdependenciesに arrayvec = "0.3.20" を書き加えて extern crate arrayvec…

C++のライブラリをC言語でくるんでRustから使うまで

この記事はAmusementCreatorsAdventCalendar(通称ACAC)の20日目の記事です. www.adventar.org にゃん 以前下のような記事を書いたのですが,その時に色々学ぶことがあったので纏めておこうと思います. akitsu-sanae.hatenablog.com この記事は大まかに分…

C++14のVariable Templatesの未定義動作かもしれない使い方

この記事はAmusementCreatorsAdventCalendar(通称ACAC)の5日目の記事です. C++14で追加されたVariable Templatesという機能を使って色々してみたいと思います. C++14とは2014年に公開された(ことになっている)C++という言語の規格です. そもそもVaria…

RustからAltseedを使う

これはAmusementCreators AdventCalendar(通称ACAC)の12日目の記事です. AltseedというC++/C#/Java製のゲームエンジンがあるのですが,それをRustから使ってみたという内容です. VisualC++などの扱いには慣れていないので何か変なことを言っていたら指摘…

F#でもゲームを作りたい!

これはmast Advent Calendar 2016 - Adventarの6日目の記事です. はじめに F#という言語を知っていますか? F#はMicrosoftが開発しているML (Meta Language) でいわゆる関数型言語です. 詳しくはF# Guide を読むとよさそうです. MLといえばOCamlやStandar…

修正重力理論の概説

これはAmusementCreators AdventCalendat、通称ACACの21日目の記事です()。 現代物理学の授業で修正重力理論という面白い話を聞いたのでここで紹介してみたいと思います。 修正重力理論を採用すればダークマター等を考える必要がなくなるそうです。 そもそ…

metashellの紹介

これはAmusementCreators AdventCalendar通称ACACの7日目の記事です。 metashellとは C++の対話型環境です。テンプレートの展開などを追えるのでC++のTMPを学ぶのに 良いです。 導入 対応している環境は Ubuntu Debian Fedora OpenSUSE Windows MacOS X です…

C++におけるgoto文について

これはAmusementCreators AdventCalendar14日の記事です。 C++にはC言語と違ってclassがあるため結構複雑になってる。 goto文が変数の宣言を飛び越える時 危険だし全く推奨されないのだけどgoto文で変数宣言を飛び越えることができる。 つまり以下は合法。 g…

AmusementCreators AdventCalendarの開催をいまここに宣言する

これはAmusementCreators AdventCalendar2015の一日目の記事です。 AmusementCreatorsの秋津早苗です。 AdventCalendar初回ということで我らAmusementCreatorsの紹介と一年を振り返っての感想を綴っていこうと思います。 Amusement Creatorsとは AmusementCr…