# 第五章 函數

函數可以讓我們將一個語句序列打包爲一個單元，然後可以從程序中其它地方多次調用。函數的機製可以讓我們將一個大的工作分解爲小的任務，這樣的小任務可以讓不同程序員在不同時間、不同地方獨立完成。一個函數同時對用戶隱藏了其實現細節。由於這些因素，對於任何編程語言來説，函數都是一個至關重要的部分。

我們已經見過許多函數了。現在，讓我們多花一點時間來徹底地討論函數特性。本章的運行示例是一個網絡蜘蛛，也就是web蒐索引擎中負責抓取網頁部分的組件，它們根據抓取網頁中的鏈接繼續抓取鏈接指向的頁面。一個網絡蜘蛛的例子給我們足夠的機會去探索遞歸函數、匿名函數、錯誤處理和函數其它的很多特性。

