एफ # के साथ खेलना, मैं निम्नलिखित व्यवहार से उलझन में हूं।इस नौसिखिया उदाहरण में List.reduce क्यों आवश्यक है?
// create an underlying type
type CoolLabel = {
label : string;
}
let defaultLabel =
{label="";}
let setLabel msg label =
{label with CoolLabel.label = msg}
let rainbow =
["red";"orange";"yellow";"green";"blue";"indigo";"violet"]
let showRainbow =
rainbow
|> List.map setLabel
|> List.reduce (>>)
// test the showRainbow function
defaultLabel |> showRainbow
जब List.reduce (>>)
निकाल दिया जाता है, मुझे लगता है कि होता है कि showRainbow CoolLabel की एक सूची प्रदान करना चाहिए, और जब List.reduce (>>)
बाहर टिप्पणी की है, तो त्रुटि को
defaultLabel |> showRainbow
----------------^^^^^^^^^^^
This expression was expected to have type
CoolLabel -> 'a
but here has type
(CoolLabel -> CoolLabel) list
इस उदाहरण में http://fsharpforfunandprofit.com/posts/conciseness-functions-as-building-blocks/ से नीचे उबला हुआ है संकलक सब कुछ के साथ शांत हो जाएगा।
संपादित करें -> (इस वाक्य को अनदेखा करें, क्योंकि नीचे दिए गए उत्तर में मेरी समझ बदल गई है।): "एक तरफ, मुझे लगता है कि List.reduce (>>) सूची से अंतिम CoolLabel वापस कर देगा।"
धन्यवाद।