WebHack#10 Why You Never Need Explicit Null Checks



A computation(e.g., a function call) will not always succeed, and the failure can be represented by a null value. To build robust programs, the intuitive way is to perform explicit null checking like if (null != aVariable). However, indentation may go so deep to harm code quality. Actually, null checking can be done implicitly at each step of the computation. And this talk will demonstrate how to implement the automatic null checking, which reflects the most important use of monad in programming languages: capturing computational effects such as failure, non-determinism, state, and IO.

This talk welcomes all software developers who are interested in monad but find it mysterious, especially those working with JavaScript or PureScript. Even though the examples are written in Haskell, this talk requires NO knowledge in Haskell or Functional Programming.


The speaker, Zirun Zhu, is a PhD Candidate at National Institute of Informatics (NII). His research area is bidirectional transformations (BXs), which can serve as an elegant approach to synchronizing data in different format. In particular, he is focusing on the synchronization problem between the program text and its abstract syntax representation. He developed a domain specific language – BiYacc – to help the user build a pair of parser and reflective printer from a single program.


Brief Introduction to Haskell and PureScript

Haskell is a purely functional programming language. Some of its features have influenced and been borrowed by many other programming languages such as C++11/Concepts, Java/Generics, Clojure, and PureScript. Among these influenced languages, PureScript shares nearly the same syntax of Haskell while it compiles to readable JavaScript and reuse existing JavaScript code easily. PureScript has been developed for years and comes with detailed tutorial. PureScript might be a good choice for web developers, for instance, in PureScript there are no callback hells.


  • Agenda
    • 19:00-19:10 Registration
    • 19:10-20:00 Presentation
    • 20:00-20:10 Q&A
    • 20:10-21:30 Dinner
  • Location
  • Transportation
    • 東京メトロ 銀座線・南北線 溜池山王駅 11出口 (徒歩約4分)
    • 東京メトロ 千代田線 赤坂駅 2出口 (徒歩約4分)
    • 東京メトロ 丸ノ内線・銀座線 赤坂見附駅 10出口 (徒歩約9分)
  • Contact
    • 080-8495-1823 (Mr.Bible)


  • elevator
  • table
  • chair
  • whiteboard
  • wire-line network
  • wire-less network
  • water


※ こちらのイベント情報は、外部サイトから取得した情報を掲載しています。
※ 掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。
※ 最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。