vim-jp/vital.vimというvimプラグイン開発者向けのUtilライブラリがあります。
こちらにData.Optionというライブラリがあるのですが、いまいちメリット分かりません。
テストコードとヘルプを見て調べていました。
ヘルプには下記の概要とサンプルコードがあります。
*Vital.Data.Optional* represents an optional value. An optional value can be a valid state (some) or invalid state (none). This is like a Maybe in Haskell, Option in Scala, std::optional in C++ and so on. An optional value is usually used as a result of process which may cause an error or as a cache of some results. Vim script doesn't have a way to treat a value which may be invalid. Goal of this library is to provide the way to treat an optional value in a good way. The implementation of optional value is a |List|. Empty list means an invalid value and 1-element list means a valid value. So, some functions for |List| like |empty()| or |map()| or |filter()| and so on are also available for an optional value.
vim
1let s:cache = O.none() 2 3function! GetData() 4 if O.exists(s:cache) 5 return O.get(s:cache) 6 endif 7 let data = DoHeavyProcess() 8 let s:cache = O.some(data) 9 return data 10end
if s:cache
では何か問題があるのでしょうか?
どんな値でも真理値にするという目的があるのかなと思いましたが、どんな値でもtrue/falseとして解釈できるのではと思いました。
どなたか解説をして頂きたいです。
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/01 15:19 編集