"Don't be a lonely operator!" nilの性質を探る旅 #RubyKaigi #RubyKaigiB
ぼっち演算子、もしくは安全(safety)演算子。nilのハンドリングとして幾つかの手法がある。Object#tryはメソッドを呼び出した結果かnilが変える。 #rubykaigi #rubykaigiB
2016-09-09 13:49:15Null Objectパターンは、nullを返す代わりに空を表すオブジェクトを返す。&.はtryと同じような挙動をする。 #rubykaigi #rubykaigiB
2016-09-09 13:51:03他言語との比較。clojureはnilとnil punningがある。HaskellはNothingが、JavaはOptionalがある。 #rubykaigi #rubykaigiB
2016-09-09 13:51:51how can we handle nil? - Active Support's Object#try - Null Object Pattern - &. #rubykaigi #rubykaigiB
2016-09-09 13:52:34「ClojureのNilについて。get-inで存在しないキーを取ろうとしたときはnilが返る」 Lisp系だから、nilは空リストと同等かな。 #rubykaigi #rubykaigiB
2016-09-09 13:54:56HaskellのNothing。NothingになりうるものはMaybe 'aになる。取れた場合と取れない場合を区別するので、NothingとJustで別の処理が必要 #rubykaigi #rubykaigiB
2016-09-09 13:57:08少しだけ解説されたnull object patternについてqiitaの記事を貼っておく。 #rubykaigi #rubykaigiB qiita.com/kasei-san/item…
2016-09-09 13:57:27nil or valueと比較すると、Nothing, Just Nothing, Just(Just Nothing), Just (Just (Just 42))などいろいろな表現がある #rubykaigi #rubykaigiB
2016-09-09 13:59:20JavaのNull。Null Pointer Errorを起こしうる。safeGetするには、Optional.ofNullableで包んでorElseGetで取る。 #rubykaigi #rubykaigiB
2016-09-09 14:01:17Voyage to the "Void Star" って (void *)、voidポインタのことだったのか! #rubykaigib
2016-09-09 14:02:24そもそもなぜNULL/nilがあるのか? という導入で「A Voyage to the Void Star」の話。 #rubykaigi #rubykaigiB
2016-09-09 14:02:29billion-dollar mistake。和訳はこの辺 ja.wikipedia.org/wiki/%E3%82%A2… #rubykaigi #rubykaigiB
2016-09-09 14:03:461965年にALGOL Wで導入されて、ALGOLに影響されてC(->MRI)とJava(-> JRuby)に入った。 #rubykaigi #rubykaigiB
2016-09-09 14:04:40Nilがない世界ではmeaningless stateが表現できない。これは素晴らしいが、meaningless stateはしばしば出現しうる。 #rubykaigi #rubykaigiB
2016-09-09 14:06:25Null Pointerがない世界があればいいのでは? #rubykaigi #rubykaigiB
2016-09-09 14:07:25Nilは強力だが危険で偏在するもの。おそらくnilは必要だが、null pointerが必要ない。Rubyはコミュニティなので、lonely operatorにならないで(これは洒落っぽい) #rubykaigi #rubykaigiB
2016-09-09 14:08:31良いまとめ。 Don't be a lonely operator! Ruby is a community-we're here to learn from each other #rubykaigi #rubykaigiB
2016-09-09 14:08:46Haskellの例のJust Nothingみたいな表現は可能だけど、まぁ大抵はbindしてNothingに落とすよね、みたいな話はある。 #rubykaigi #rubykaigiB
2016-09-09 14:10:46「JavaScriptのundefinedをRubyのnilみたいに扱うのは良いアイディアだと思う?」「No」 力強い返答だった(質問が英語でちゃんと聞き取れなかったので意味が違うかも) #rubykaigi #rubykaigiB
2016-09-09 14:12:14