在A tutorial on universality and expressiveness of fold第4.1ç« ä¸ï¼Œå®ƒè¯´æ˜Žäº†è¿™ç§é€’归模å¼
h y [] = f y
h y (x:xs) = g y x xs (h y xs)
是原始递归,但我ä¸æ˜Žç™½ä¸ºä»€ä¹ˆæ¨¡å¼
h [] = v
h (x:xs) = g x (h xs)
æ ¹æ®{{​​3}},ä¸æ˜¯åŽŸå§‹é€’å½’
如果我们å…许h y'
å’Œh y
,则h (x:xs) = g x (h xs)
的值ä»ç„¶åŸºäºŽy = xs
ä¸çš„y' = x:xs
。
ç”案 0 :(得分:2)
原始递归方案是{em>å‚数选择f,g
h y [] = f y
h y (x:xs) = g y x xs (h y xs)
也就是说,我们å¯ä»¥éšæ„选择f,g
,h
将通过原始递归æ¥å®šä¹‰ã€‚
特别是,我们å¯ä»¥é€‰æ‹©
f = \y -> v
g = \y x xs -> g' x z
å…¶ä¸g'
是我们选择的任何其他功能。然åŽæˆ‘们得到
h y [] = v
h y (x:xs) = g' x (h y xs)
现在,如果我们让
h' xs = h () xs
我们将y
å‚æ•°ä¿®å¤ä¸ºéžé‡è¦å€¼ï¼Œä»¥ä¾¿æ¢å¤é—®é¢˜ä¸çš„函数。å°å¿ƒç¿¼ç¿¼åœ°ï¼Œh'
ä¸æ˜¯ä½œä¸ºä¸€èˆ¬å½¢å¼çš„å®žä¾‹ç›´æŽ¥èŽ·å¾—çš„ï¼Œå› æ¤h'
在技术上ä¸æ˜¯é€šè¿‡ä¸Šé¢çœ‹åˆ°çš„原始递归方案定义的(å³ï¼Œå®ƒä¸æ˜¯é‚£ä¸ªçš„实例)。有时,我们å‘现有许多å˜é‡y
,而ä¸æ˜¯y1 .. yn
,我们å¯ä»¥é€‰æ‹©n=0
并在æ¤æƒ…å†µä¸‹åˆ é™¤y
。