F#有它自己的字符串操作庫嗎?F#有它自己的字符串操作庫嗎?
當我試圖學習F#時,我發現自己使用現有的System.string方法?
我應該這樣做嗎?
代碼:
open System
type PhoneNumber =
{ CountryCode:int
Number:string }
// b. Create a function formatPhone that accepts a PhoneNumber record and formats it to look like something like this: "+44 1234 456789"
let formatPhone phoneNumber =
let getLeadingCharacters (length:int) (text:string) =
text.Substring(0, length)
let getLastCharacters (length:int) (text:string) =
text.Substring(text.Length - length, length)
printf "+%i %s %s" phoneNumber.CountryCode
(phoneNumber.Number |> getLeadingCharacters 4)
(phoneNumber.Number |> getLastCharacters 6)
formatPhone { CountryCode=44; Number="123456789" };;
UPDATE
更新功能從:
let formatPhone phoneNumber =
let getLeadingCharacters (length:int) (text:string) =
text.Substring(0, length)
let getLastCharacters (length:int) (text:string) =
text.Substring(text.Length - length, length)
printf "+%i %s %s" phoneNumber.CountryCode
(phoneNumber.Number |> getLeadingCharacters 4)
(phoneNumber.Number |> getLastCharacters 6)
formatPhone { CountryCode=44; Number="123456789" };;
到:
let formatPhone phoneNumber =
printf "+%i %s %s" phoneNumber.CountryCode
phoneNumber.Number.[0..3]
phoneNumber.Number.[4..8]
formatPhone { CountryCode=44; Number="123456789" };;
我創造這樣的小*反腐敗功能*像'getLeadingCharacters'所有的時間。它讓我覺得非常正常。 –
「反腐敗」? –
從[DDD](http://amzn.to/WBCwx7)中的術語*反腐敗層*獲得通過。 –