作者SansWord (是你)
看板PLT
标题Re: [问题] 请问这题有谁会呢?
时间Sat Nov 13 02:04:34 2010
※ 引述《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吧!!!
--
回忆不会消失...只会被盖在灰尘
下...
只要没有风去吹动~~一切....就可以默默淡忘...
所以....不要成为那伤人的风吧.... ^.^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.193.67.182