http://d.hatena.ne.jp/wata_d/20080108/1199770091 int f(std::string const& str) { return str == "foo" ? 1 : str == "bar" ? 2 : 0; } と書けば, f str = if str == "foo" then 1 else if str == "bar" then 2 else 0 っぽく読めますし, int g(std::string const& str) { return str == "foo" ? 1: str == "bar" ? 2: str == "baz" ? 3: 0; } と書けば, g str | str == "foo" = 1 | str == "bar" = 2 | str == "baz" = 3 | otherwise = 0 っぽく読