F # ha le proprie librerie di manipolazione delle stringhe?F # ha le sue librerie di manipolazione delle stringhe?
Mentre sto cercando di imparare F #, mi trovo a utilizzare i metodi System.string esistenti?
Devo fare questo?
Codice:
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
funzione Aggiornamento da:
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" };;
a:
let formatPhone phoneNumber =
printf "+%i %s %s" phoneNumber.CountryCode
phoneNumber.Number.[0..3]
phoneNumber.Number.[4..8]
formatPhone { CountryCode=44; Number="123456789" };;
creo così piccole funzioni * * anti-corruzione come 'getLeadingCharacters' tutto il tempo. Mi sembra perfettamente normale. –
"Anti-corruzione"? –
Adottato dal termine * strato anticorruzione * da [DDD] (http://amzn.to/WBCwx7). –