suave.ioでは、型choose
を持つコンビネータを使用できます。Types.WebPart list -> Types.WebPart
彼らのウェブサイトの例は、このコンビネータを次のように使用できることを示しています。
choose
[ path "/hello" >>= OK "Hello GET"
path "/goodbye" >>= OK "Good bye GET" ]
このリスト表記は、要素を区切るセミコロンを必要としないため、奇妙に思えます。しかし、私はそれを別の文脈でこのように使用することができませんでした. したがって、次のように動作します。
> choose
[OK ""
OK ""];;
val it : Types.WebPart = <fun:choose@47>'
としても
> choose [OK "" ;OK ""];;
val it : Types.WebPart = <fun:choose@47>
ただし、以下はコンパイルされません。
>choose [OK "" OK ""];; //ERROR
> [OK ""
OK ""];; //ERROR
では、この表記法はどのように機能するのでしょうか。