Groovy の場合は new File("foo.txt").text のようなお作法で気軽にテキストファイルを読み書きできる。 Kotlin Script でもこのように手軽にテキストファイルの読み書きができないか調べた。 拡張プロパティ Extension Properties という機能を使えば普通にできた。
» Read More以前のエントリー 改善版) kotlin でパーサーコンビネータを実装する の続きです。
そもそもの動機としては、 マークアップがネストしていたときにパーサーコンビネータを使ってパースするにはどうすればいいのだろうか? とか考えはじめた結果の覚え書きです。
パーサーコンビネータ部分の説明は省きます。(以前のエントリーを必要なら参照のこと)
» Read MoreEPUB の toc.ncx ファイルで naviPoint の playOrder 属性を指定する必要がある。 プログラム的にこれを設定する方法を実装したので、覚え書きとして書き残します。
» Read More久しぶりに Kotlin/JS に取り組もうと 過去のエントリー やりなおし Kotlin/JS Hello, World! 生成した js を HTML から使う / Node.js から使う などを見たが、すっかり状況が変わっていて動かない。
Kotlin のコードを(ただし Hello, World!標準出力するだけ)Node.js で動くようにビルドする方法を書き留めます。
おそらくは、このあたりを丁寧に読んでいけば済む話なのではないかと思う。 https://kotlinlang.org/docs/js-project-setup.html
» Read Moreときどき Haskell のように気軽に部分適用したくなることがある。 例のための例になるが、ARGB のカラーを生成する場合を考えてみる。
» Read MoreSealed クラスの使い途をネットで調べると色の RGB と CMYK の例などが出ていてなるほど と思っていたが、今つくっているアプリで、エディタのコマンドごとに処理を分岐させる部分で Sealed クラスを使うとわかりやすくコードを表現できたので、それを書き残す。
» Read More以前にもこのリストのサブリストをつくる件は書いた。 いまつくっているアプリでちょうどリスト分割する機会があったので書き残す。
» Read Moreときに、 巨大になる可能性のある文字列とか画像(バイナリデータ)を返したいなどの理由により、 関数が返す値として InputStream を使いたくなることがある。
そんなときは PipedInputStream と PipedOutputStream を使えば解決できるのだが、 そのとき PipedInputStream を読む処理と PipedOutputStream を書く処理は 別々のスレッドでなければいけない、という制約がある。
Javaなら普通に Thread をつくって対処してもよいのであろうが、 Kotlinには Coroutines があるので、それを使って解決する方法を調べた。
» Read Moreスクリプトとして Kotlin を使うエントリーは何回か書いたのですが、 現時点での最新の v1.9.22 であらためて使い方を復習します。
コマンドラインで Kotlin を使う方法は ここ https://kotlinlang.org/docs/command-line.html に書いてあります。
» Read More少し前に 特定のディレクトリ以下全部のファイルとディレクトリをリストにするというエントリーを書いたのですが、 その応用です。
» Read More