1

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

では、この表記法はどのように機能するのでしょうか。

4

1 に答える 1

3

最後の例を見ると

[OK ""
OK ""]

最後の行の: が前の行のOK ""真下にないことがわかるはずです(左の行の 1 つです)。OK[OK ""

これはあなたにヒントを与えるはずです;)

要素を同じ列に揃えるだけです (推奨: スペースのみを使用してください)

これがあなたが通常書く理由です

[
   OK ""
   OK ""
]

[- またはそのようなものの後に最初の要素を開始する代わりに

[ OK ""
; OK "" ]

でもそれは慣用的な F# ではないと思います。

述べる

これはレコード構文でも機能します。

{
   surname = "Smith"
   givenname = "Adam"
}
于 2015-06-03T13:26:58.697 に答える