※ 引述《SansWord (是妳)》之銘言:
: ※ 引述《cedog (YA)》之銘言:
: : insert(str1,str2,int):插入字串,將str2插入str1的位置int,從0開始。
: : replace(str1,str2,int):取代字串,將str1位置int,開始取代成str2,int是從0開始。
: insert(str1,str2,int):: String -> String -> Integer -> String
: insert(str1, str2, 0)
: = str2 ++ str1
: insert(a::str1, str2, b)
: = a::( insert(str1, str2, (b-1)) )
: replace(str1, str2, int):: String -> String -> Integer -> String
: replace(a::as, b::bs, 0)
: = b::(replace (as, bs, 0)
: replace( nil, s2, 0)
: = nil
: replace( s1, nil, 0)
: = s1
: replace( a::as, s2, b)
: = a::( replace(as, s2, (b-1) ) )
: 這樣應該是ok的吧?
: 這不是任何程式碼,充其量就是有點functional 的pseudo code
: 希望能幫到你
附上可以Run 的Haskell Code (喔天啊我寫太多python 剛剛居然忘記怎麼寫Haskell了)
insert::[Char] -> [Char] -> Int -> [Char]
insert s1 s2 0 = s2 ++ s1
insert (s:s1) s2 b = s: insert s1 s2 (b-1)
insert [] s2 b = s2
replace:: String -> String -> Integer -> String
replace (a:as) (b:bs) 0 = b:(replace as bs 0)
replace [] s2 b = ""
replace s1 [] b = s1
replace (a:as) s2 b = a:( replace as s2 (b-1) )
暗紅色 是內建operator
青色 是常數
綠色 是字串
像這種跟pseudo code 一樣簡單的程式語言,真是打著燈籠都找不著。
來學Haskell吧!!!