Skip to content

Instantly share code, notes, and snippets.

View k16shikano's full-sized avatar
💭
I may be slow to respond.

keiichiro shikano k16shikano

💭
I may be slow to respond.
View GitHub Profile
\documentclass[uplatex]{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\usepackage{tikz}
\usepackage{tikz-qtree}
\usepackage[twitter]{coloremoji}
\renewcommand{\coloremojidir}{./emoji_images/}
\DeclareKanjiFamily{JY2}{emoji}{}
\DeclareKanjiFamily{JT2}{emoji}{}
\def\seqinsert{\ifmmode\allowbreak\else\hspace{0pt plus 0.02em}\fi}
\def\seqsplit#1{\SQSPL@scan#1\SQSPL@end}
\def\SQSPL@scan{\futurelet\SQSPL@next\SQSPL@scani}
\def\SQSPL@scani#1{%
\ifx \SQSPL@end \SQSPL@next \def\SQSPL@process{\@gobble}%
\else \ifx \@sptoken\SQSPL@next \def\SQSPL@process{\SQSPL@sp@doprocess}%
\else \def\SQSPL@process{\SQSPL@doprocess}\fi\fi%
\SQSPL@process{#1}}
\def\SQSPL@doprocess#1{#1\SQSPL@insert}
\def\SQSPL@sp@doprocess{◇\SQSPL@scan}
@k16shikano
k16shikano / intro-to-modern-tex.md
Last active October 15, 2019 06:58
IIJセミナー2019年5月21日

狭義のTeXと広義のTeX、それぞれの進化

  • TeXの登場は1978年で、かなり古いアプリケーション
  • クヌースが開発を凍結した年でいっても1990年なので、やはりとても古い
  • 「それから何か進歩しているの?」←当然の疑問
  • 「そんなに古いソフトだから現代のコンピューター環境にそぐわない」←どこまで本当?

今日の話の結論

細かい話は「日本人の知らないTeX」(八登崇之さんの2010年の発表)にすべて書いてある。

@k16shikano
k16shikano / coroutine-talk.md
Last active June 5, 2019 05:05
コルーチン座談会の録音を聴くときの補足gist

https://randomfacts.club/2 から文脈を拾い起してみたもの。書き起こしではないので、鹿野の勘違いなどによる間違いが含まれている可能性があります。

  • 細切れにするのって、ある種のCPS変換ではないのでしょうか(はまじさん)
  • Pythonで「awaitメソッドを細切れにする」のは、継続渡し形式に変換しているのと同じでは、という質問(鹿野)
  • やっていることはCPS変換そのものだと思うが、「CPS変換」と呼ぶのが憚られて、何か別の名前があるのではないかと考えた(もり)
  • 実際、質問で「ある種の」ってつけたのは、本当の継続ではない、つまりスタックっぽくないと思ったから(はまじ)
  • この場合、CPS変換で渡される継続は、スケジューラに相当するのかな(まめ)
  • コンパイラ視点だと、巨大なswitch文が作られていて、awaitを呼び出した単位で分かれている。CPS変換では、それぞれの関数を独立して捉えることになる。確かに、同じコンテキストを共有しているという意味ではCPSそのものだなと思った(もり)
  • RubyのiteratorもPythonのgeneratorもコルーチンっぽいが、それはあってる?(κeen)
  • Pythonのgeneratorは、常にスタックがあって、実行が止まっているので、対称コルーチンではない。(もり)
@k16shikano
k16shikano / replace-char.tex
Last active March 30, 2022 12:01
platexで文字の置換をexpl3でやる
% platexで文字の置換 https://ja.stackoverflow.com/questions/53898/platex%E3%81%A7%E6%96%87%E5%AD%97%E3%81%AE%E7%BD%AE%E6%8F%9B をexpl3でやってみる。
% おそらくenvironの制限で、この書き方だとinstead環境のネストには対応していない。
% xparseの新しい引数指定オプションbを使うと環境の本体がとれて、これだとうまくいくかもしれない。
\documentclass[uplatex]{jsarticle}
\usepackage{xparse}
\usepackage{environ}
\ExplSyntaxOn
module Main where
import System.Environment (getArgs)
import System.Random
import Data.List
scan2020 :: [Int] -> [[Int]]
scan2020 [] = []
scan2020 ls@(x:xs)
| isPrefixOf the2020 ls = the2020 : (scan2020 $ drop 4 ls)
@k16shikano
k16shikano / jackpodsc.tex
Last active May 22, 2020 10:01
TeXでスロットマシン
% inspired by https://tex.stackexchange.com/questions/524022/switch-string-commands-based-on-random-values-to-produce-random-cards
\documentclass{article}
\usepackage{xparse}
\usepackage{scsnowman}
\usepackage{multicol}
\ExplSyntaxOn
\NewDocumentCommand{\jackpodsc}{}
{\three_snowmen:}
@k16shikano
k16shikano / spaced-ruby.tex
Last active July 11, 2020 13:03
スペース区切りでモノルビ指定
% https://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=2899&parent=16984
\documentclass[uplatex]{jsarticle}
\usepackage{xparse}
\usepackage{okumacro}
\ExplSyntaxOn
\seq_new:N \l__body_seq
\seq_new:N \l__ruby_seq
@k16shikano
k16shikano / toSnowman.hs
Last active September 17, 2020 11:02
圧縮解除した /ToUnicode を雑に本質に書き換える
{-# LANGUAGE OverloadedStrings #-}
module Main where
import System.Environment (getArgs)
import Data.Char (chr)
import Numeric (showHex, readHex)
import Data.ByteString (ByteString)
import qualified Data.ByteString.Char8 as B