Je sais que cela ne répond pas vraiment à votre question, mais cela vaut le coup de le souligner. En F # et dans d'autres langages fonctionnels, vous voyez souvent des modules avec des méthodes statiques (comme le module Seq) conçus pour être composés avec d'autres fonctions. Pour autant que j'ai vu, les méthodes d'instance ne sont pas faciles à composer, ce qui explique pourquoi ces modules existent. Dans le cas de cette extension, vous pouvez ajouter une fonction au module String.
module String =
let right n (x:string) =
if x.Length <= 2 then x
else x.Substring(x.Length - n)
Il serait alors utilisé comme tel. Bien que dans ce cas, la méthode d'extension ne serait pas beaucoup plus de code.
["test"; "test2"; "etc"]
|> List.map (fun x -> x.Right 2)
darn, c'est ce que je voulais. – esac