5
我想從Suave.io編譯一個簡單的F#項目這個例子: http://suave.io/樣品Suave.IO並不在我的F#項目編譯
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" ]
不幸的是我得到一個編譯器錯誤在(查詢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
現在在問候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的RC版本2015年
感謝
謝謝。我現在有你的幫助,現在開始運行樣品。 我還發現我錯過了開放的: 打開Suave.Utils.Collections 這有^^運營商的定義 –
@AndyB我實際上也注意到,但它不應該需要 - 模塊是定義爲'AutoOpen'。 – Luaan