高普考題庫
93 年 093年公務人員高等考試三級考試暨普通考試第二試・程式語言
申論 4在函數式程式語言(functional programming language)中,我們經常使用多重型態函數(polymorphic functions)與高階函數(higher-order functions)。假設我們有一個樹狀資料結構,其中每一個葉結點(leaf node)包含一項資料。並且每一個葉結點所包含的資料,必須是相同的資料型態。例如圖中的樹狀資料結構,每一個葉結點包含一項整數型態資料。(20 分)請設計一個函數,將樹狀資料結構壓扁成一序列結構。例如圖中的樹狀資料結構經過壓扁後會變成以下序列結構:(12 27 37 42 52 15 22)。你可以使用Scheme 或ML 或其他類似的函數式程式語言來表示此函數。為求答題方便,你可以適度簡化你所採用的函數式程式語言。請用你所設計的函數來解釋何謂多重型態函數與高階函數及其優點。