Question

Y at-il un moyen de fonctions membres d'extrait, et les utiliser comme fonctions F #? Je voudrais pouvoir écrire ce qui suit:

mystring |> string.Split '\n' |> Array.filter (string.Length >> (=) 0 >> not)

Le code ci-dessus fonctionne si vous [laisser]

let mystring = "a c\nb\n"
let stringSplit (y:char) (x:string) = x.Split(y)
let stringLength (x:string) = x.Length
mystring |> stringSplit '\n' |> Array.filter (stringLength >> (=) 0 >> not)
Était-ce utile?

La solution

Ceci est tout à fait similaire à une question que je posais il y a quelques jours (mais votre libellé est mieux). Le consensus semble être:

  1. Non.
  2. Peut-être la syntaxe string#Split, "foo"#Split, ou tout simplement #Split (déduire type) sera ajouté à l'avenir. Mais Don proposition de Syme que Tomas était liée à partir de 2007, donc je n » sais combien il est probable de se produire - probablement à peu près aussi probable que d'une syntaxe spécifique pour la paresse, je suppose que
  3. .

Edit:

Je suppose que "foo"#Split pourrait aussi être écrit string#Split "foo". Je suppose que cela dépend de la souplesse avec vous définissez la syntaxe #.

Autres conseils

Utilisez

(fun x -> x.Member ...)

pour l'instant. Par exemple

someString |> (fun s -> s.Split "\n") |> ...
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top