単純な F# プロジェクトの Suave.io コンパイルからこの例を取得しようとしています: http://suave.io/
open Suave.Http.Applicatives
open Suave.Http.Successful
open Suave.Web
open Suave.Types
open Suave.Model
let greetings q =
defaultArg (q ^^ "name") "World" |> sprintf "Hello %s"
let sample : WebPart =
path "/hello" >>= choose [
GET >>= request(fun r -> OK <| greetings (query r))
POST >>= request(fun r -> OK <| greetings (form r))
NOT_FOUND "Found no handlers" ]
残念ながら、(query r) 部分でコンパイラ エラーが発生します。
error FS0001: Expecting a type supporting the operator '^^' but given a function type. You may be missing an argument to a function.
コンパイラ エラーをいくつかの単純な行に絞り込もうとしたところ、次のようになりました。
let greetings q =
defaultArg (q ^^ "name") "World" |> sprintf "Hello %s"
let q (rqst : string) = query rqst
let t = greetings q
そして、greetings q 行で同じコンパイラ エラーが発生します。上記の例のタイプは次のとおりです。
query:
string -> (string -> Choice<'T,string>) -> HttpRequest -> Choice<'T,string>
greetings:
(string -> (string -> Choice<obj,string>) -> HttpRequest -> Choice<obj, string>) -> string
q:
string -> ((string -> Choice<'a, string>) -> HttpRequest -> Choice<'a, string>)
したがって、私のタイプは一致していませんが、これらを一致させる方法がよくわかりません。
例は時代遅れですか?この例をコンパイルして実行する方法はありますか?
Visual Studio 2015 の RC ビルドを実行しています
ありがとう