Hatena::Grouperlang

檜山正幸のErlang未確認情報 RSSフィード

 | 

2008-12-22 (月)

大域述語と部分述語

| 18:20

無限大を含む整数算術 - 檜山正幸のErlang未確認情報 - はてなグループ: erlang :

ライブラリ設計として、考えるべき点も二三はあるのだが、目が疲れたから後にする。

is_x_poisitive/1は次のように書いている。

%% @doc 拡張正整数か
%% @spec (any()) -> bool()
is_x_positive(X) ->
  (is_integer(X) andalso X > 0) orelse X =:= ?INF.

次のようにも書ける。

is_x_positive(?INF) -> true;
is_x_positive(?NEGINF) -> false;
is_x_positive(X) when is_integer(X) ->
 X > 0 .

この2つの違いは、エラーしない定義域が全域であるか XInf (infinity | negative_infinity | integer())であるかの違い。エラーを⊥とするなら:

  • 値がtrue, falseの二値
  • 値がtrue, false, ⊥の三値

の違いとも言える。値がtrueである領域はどっちも同じだが、全体としては挙動が違う。どっちがいいかは使い勝手の問題だろう、理論的には優劣が付けられない。

ChrisChris2012/10/08 18:35I have exalcty what info I want. Check, please. Wait, it's free? Awesome!

ehiuwhjehiuwhj2012/10/09 05:41dRVMpk <a href="http://mwqynuzrielz.com/">mwqynuzrielz</a>

cikndmzkucikndmzku2012/10/11 13:543HjQHE <a href="http://esjngyqtffkz.com/">esjngyqtffkz</a>

xuremzxuremz2012/10/12 03:1521avPK , [url=http://alsrcycxgrye.com/]alsrcycxgrye[/url], [link=http://mftdjxvbmeto.com/]mftdjxvbmeto[/link], http://cqcupvbysolc.com/

 |