Sadece F # öğreniyorum ve C# uzantısı yöntemlerini bir kitaplığa F # dönüştürüyorum. Şu anda altına C# uygulamasına dayalı ConvertFirstLetterToUppercase adlı bir işlev uygulama üzerinde çalışıyorum:F # string manipülasyonunun optimizasyonu
public static string ConvertFirstLetterToUppercase(this string value) {
if (string.IsNullOrEmpty(value)) return value;
if (value.Length == 1) return value.ToUpper();
return value.Substring(0, 1).ToUpper() + value.Substring(1);
}
F # uygulaması
[<System.Runtime.CompilerServices.ExtensionAttribute>]
module public StringHelper
open System
open System.Collections.Generic
open System.Linq
let ConvertHelper (x : char[]) =
match x with
| [| |] | null -> ""
| [| head; |] -> Char.ToUpper(head).ToString()
| [| head; _ |] -> Char.ToUpper(head).ToString() + string(x.Skip(1).ToArray())
[<System.Runtime.CompilerServices.ExtensionAttribute>]
let ConvertFirstLetterToUppercase (_this : string) =
match _this with
| "" | null -> _this
| _ -> ConvertHelper (_this.ToCharArray())
Birisi bana daha doğal F # kullanan bir daha özlü uygulanmasını gösterebilir sözdizimi?
Yanıtlar için herkese teşekkürler, bazı yeni operatörler öğrendim ve desen eşleştirmeyi nasıl kullanacağımı öğrendim. :-) Bir sonraki adımı tahmin ediyorum? Performans testi? lol –