Ark's Blog

数学とか競プロとか参加記とか備忘録とか

ようこそ

max(∅)=-∞ は半群のモノイド化

全順序集合に思いを馳せながら寝たら思いついたネタを投げます。

導入

数学書かなにかで次のような記述を見たことがあるかもしれません。

 \mathbb{N}を正の整数全体の集合とする。

このとき、 A\subset \mathbb{N}に対して \max(A) := \text{「}A\text{のうち最も大きな値」}と定義する。

ただし、\max(\emptyset) = -\inftyとする


「ただし、\max(\emptyset) = -\inftyとする」

これ、特殊扱いしてるみたいで気持ち悪くないですか?

しかも、今回の場合は「\max(\emptyset) = 0」でも「\max(\emptyset) = -1」でも「\max(\emptyset) = -5000\text{兆}」でも問題ないです。要は ^\forall n \in \mathbb{N}, x \lt nを満たすxなら何でもいいです。

ただ、これを半群のモノイド化(1-添加と言うらしい?)と解釈したらスッキリしました。これについて以下にまとめます。

続きを読む

git stash save は deprecated。pushを使おう

git stashの使い方を見ようとgit stash --helpをしたら

# -- snip --
save [-p|--patch] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] [<message>]
    This option is deprecated in favour of git stash push. It differs from "stash push" in that it cannot take pathspecs, and any non-option arguments form the message.
# -- snip --

と表示された。git stash saveがいつの間にかdeprecatedになっていた。(手元のGitバージョンは2.19.2

SYNOPSIS
       git stash list [<options>]
       git stash show [<stash>]
       git stash drop [-q|--quiet] [<stash>]
       git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]
       git stash branch <branchname> [<stash>]
       git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]
                    [-u|--include-untracked] [-a|--all] [-m|--message <message>]
                    [--] [<pathspec>...]]
       git stash clear
       git stash create [<message>]
       git stash store [-m|--message <message>] [-q|--quiet] <commit>

とあり、どうやらgit stashのデフォルトオプションはpushになったらしい。pushpopで対応してて良い。

↓によれば、Git 2.15.x/2.16 (Q1 2018)で切り替わったとのこと。

stackoverflow.com

mkdir + cd

mkdircdを同時にしたいときに毎回

$ mkdir hoge
$ cd hoge

をするのがめんどいので、これをまとめて実行させる。

自分的に落ち着いた手段は.bashrcに以下を追加する。

function mkcd() {
  mkdir $@ && cd $_;
}

あとは

$ mkcd hoge

でOK。

$ mkcd -p aaa/bbb/ccc

と打ったとき、ディレクトaaa/bbbが存在しないときでもちゃんと作れる。

続きを読む