オプションの値にはリスト内包表記をよく使用します。
[Parent parent, Destination [DestPage currPage]] ++ [OpenChildren | parent == Bookmark 0]
しかし、オプションの値の代わりに選択を行う方法がわかりません。
私のコードの多くは次のようになります。
let lblTabX = if isAtBottom then 5 else 3
lblTabY = if isAtBottom then 3 else 60
lblTabPosition = Position left (if isAtBottom then bottom else top)
lblTabWidth = if isAtBottom then lblPageX - 60 else 20
lblTabHeight = if isAtBottom then 20 else pageHeight - 80
lblTabMargin = if isAtBottom then Margin 0 3 else Margin 3 0
あなたがたくさんのifを見るように:)
だから私はいくつかの演算子で遊んでいて、この構文を思いつきました:
iif c l r = if c then l else r
infixl 8 <-/
(<-/) l c = iif c l
infixl 8 /->
(/->) = ($)
そして、前の例が今どのように見えるかが気に入っています:
let lblTabX = 5 <-/ isAtBottom /-> 3
lblTabY = 3 <-/ isAtBottom /-> 60
lblTabPosition = Position left (bottom <-/ isAtBottom /-> top)
lblTabWidth = (lblPageX - 60) <-/ isAtBottom /-> 20
lblTabHeight = 20 <-/ isAtBottom /-> (pageHeight - 80)
lblTabMargin = Margin 0 3 <-/ isAtBottom /-> Margin 3 0
もちろん、これはおもちゃの例です。使う気はありません。しかし、私はただ興味がありました.if演算子以外に選択を表現する構文はありますか? 多分リスト内包表記で?