Le paramètre de tuyauterie est-il en ligne fonctionne uniquement pour les fonctions qui acceptent un paramètre?
Si nous regardons l'exemple à page de chris Smiths '/ a>, où sa fonction de fichiers auprès de fichiers n'attendait que le paramètre RootFolder,
Et si la fonction attendait deux paramètres, c'est-à-dire
Ce ne fonctionne pas: P> Laissez FilesDolder TailleFolder Rootfolder CODE> P>
// Using the Pipe-Forward operator (|>)
let size= 4
let photosInMB_pipeforward =
@"C:\Users\chrsmith\Pictures\"
|> filesUnderFolder size
|> Seq.map fileInfo
|> Seq.map fileSize
|> Seq.fold (+) 0L
|> bytesToMB
3 Réponses :
L'exemple que vous avez suggéré devrait fonctionner correctement, une LA
(41,1) ||> add |> printfn "%d"
|||> est également défini dans prim-types.fs :)
Hey! Cet opérateur de pipeline est nouveau pour moi, certainement un pour maintenir ma manche.
Merci les gars. Maintenant, je peux avoir une valeur unique ou des testables, ma prochaine question est que je peux ajouter une liste / tableau fileUnderfolder |> SEQ.MAP FileInfo CODE> Mon problème est que je ne peux pas traiter cela avec pipeline |> ou puis-je ?
assemblage.getexecutingassembly.getfiles () code>
Lorsque vous mélangez des opérateurs de pipeline et des arguments au curry, soyez conscient de la commande que vous passez des arguments avec. Pensez-y comme si le compilateur placait des parenthèses autour de la fonction et de ses paramètres. p> Exemple hors de commande p> @ "c: \ users \ chrsmith \ images \" |> FilesUnfolder taille code>
devient
@ "c: \ users \ chrsmith \ images \" |> (FilesUnfolder taille) code>
ou de
(FilesBolder Taille) @ "C: \ Utilisateurs \ chrrsmith \ images \" code> p>
let inline (|>) x f = f x
let inline (||>) (x1,x2) f = f x1 x2
let inline (|||>) (x1,x2,x3) f = f x1 x2 x3
Merci beaucoup Gradbot, la valeur est-elle renvoyée par pipeline, puis-je le traiter comme un objet? Quelque chose comme: taille, @ "c: \ users \ chrrsmith \ images \" ||> FilesUnfolder |> .getlength ()
En tant qu'objet non, mais vous pouvez créer une nouvelle fonction avec l'opérateur (|>) code>, il n'y a pas non plus de moyen de réussir une fonction de membre comme argument de F #. Vous devez l'envelopper dans une fonction.
Taille, @ "C: \ Users \ chrrsmith \ images \" ||> FilesUnfolder |> (Fun X -> x.getlength ()) code>
C'était vraiment utile, merci! La façon dont vous avez décrites en pensant avoir aidé certaines roues cliquez sur ma tête pour un problème similaire.
Cela peut être un style mauvais (?), mais vous pouvez ajouter des paramètres supplémentaires au pipeline 'du côté droit'