我正在玩一點F#語法。F#:替換爲.Replace(「oldValue」,「newValue」)
在瑞典,我們有一個名爲「Backslang」 遊戲 (從「Rövarspråk」 googletranslated)的規則很簡單。你所說的所有單詞都必須以特定的方式說出。雖然聲音是相同的,但每個輔音必須用「o」發音,然後再輔音。
I.e. 「L」將「LOL」,「FRIDAY」將是 「FOFRORIDODAY」和「BALL」將「BOBALOLLOL」。
我寫了一些代碼,看起來很愚蠢,但它的工作。
let myWord (x:string) =
x.Replace("q","qoq").Replace("w","wow").Replace("r","ror").Replace("t","tot").Replace("p","pop").Replace("s","sos").Replace("d","dod").Replace("f","fof").Replace("g","gog").Replace("h","hoh").Replace("j","joj").Replace("k","kok").Replace("l","lol").Replace("z","zoz").Replace("x","xox").Replace("c","coc").Replace("v","vov").Replace("b","bob").Replace("n","non").Replace("m","mom").Replace("Q","QOQ").Replace("W","WOW").Replace("R","ROR").Replace("T","TOT").Replace("P","POP").Replace("S","SOS").Replace("D","DOD").Replace("F","FOF").Replace("G","GOG").Replace("H","HOH").Replace("J","JOJ").Replace("K","KOK").Replace("L","LOL").Replace("Z","ZOZ").Replace("X","XOX").Replace("C","COC").Replace("V","VOV").Replace("B","Bob").Replace("N","Non").Replace("M","Mom").ToLower()
myWord "ball"
F#互動: VAL它:字符串= 「bobalollol」
對於可讀性的原因,有什麼辦法給這個代碼更好看?
我是F#和函數式編程的新手,所以任何意見,protip和指針都熱烈歡迎!
如果你將它與FuleSnabel的'isVowel'函數結合起來,它將是兩全其美的,IMO:'String.collect(當isVowel c - > string c | c - > sprintf「%co%c」cc時的函數c) ' – Daniel
這個解決方案非常整潔!我很喜歡。還修正了資本輔音再次出現的一個小問題。 _ **即** _ 其中** Ball **輸出** BoBalollol **現在讀取** Bobalollol。** '| |輔音 - >輔音+「o」+ consonant.ToLower())' – Awots