2019年9月3日のブックマーク (3件)

  • メイクと実存 - 傘をひらいて、空を

    年に一度、友人にメイクを習いに行く。友人は何段にも分かれたメイクボックスを持っていて、いくつかの色をわたしの顔にあてる。彼女は眉の描き方を修正し、アイカラーとアイライナーを変えて塗り方を教示し、新しいアイテムとしてハイライトをわずかに使うことを提案して、実際に塗ってくれた。 わたしは彼女の指示をメモする。彼女がつくってくれた「今年のわたしの顔」を撮影する。彼女はアイカラーをふたつくれる。いくらでも買っちゃうから、もらって、と言う。メイクボックスの薄べったい抽斗に目をやると、ずらりとアイカラーが並んでいる。必要があってこんなに買うのではないの、と彼女は言う。だからあげても問題はないの。コスメを買いすぎるのはね、実存の問題ですよ。 実存の問題、とわたしは言う。実存の問題、と彼女も言う。そうしてぱたりとメイクボックスを閉じる。 わたしは母の鏡台を思い出す。父方の祖母のお下がりで、ものすごく古かっ

    メイクと実存 - 傘をひらいて、空を
  • Python 3.8 の概要 (その1) - Assignment expressions - atsuoishimoto's diary

    古来、Pythonでは「代入は文であるべき!」と一貫して主張してきました。 C言語などでは、代入は足し算や掛け算と同じ、値を計算する「式」で、たとえば a = (b=100) / 2; と書くと、b には 100 を代入し、a に 100/2=50 を代入します。1+1 は 2 という値になる 式 ですが、b=100 も同様に値が 100 となる 式 なのです。 Pythonでは、代入は式ではないので、こういう書き方はできません。 Pythonの代入は、足し算などの演算子の仲間ではなく、if や for のような制御文の仲間で、あまり自由な書き方は出来ないのです。 Python FAQ では、その理由として Python の式中での代入を許さない理由は、この構造によって起こる、他の言語ではありがちで見つけづらいバグです: if (x = 0) { // error handling } e

    Python 3.8 の概要 (その1) - Assignment expressions - atsuoishimoto's diary
  • コンパイラをつくってみよう / How to make a compiler

    Builderscon 2019 の発表資料です。 ライブコーディングでフルスクラッチでコンパイラを書くというのをやりました。 コンパイラのソースコードはこちらです https://github.com/DQNEO/HowToWriteACompiler

    コンパイラをつくってみよう / How to make a compiler