下面是在指令碼中用函數語言程式設計的方式解析豆瓣首頁的簡單演示動畫:
其中我最喜歡的就是用到的HtmlProvider
,因為它幫我解析了大量的html文字內容,不再需要用繁瑣的正規表示式去解析了;而且解析後的資料會動態地為相應的資料結構生成相應的型別,從而有了編寫程式碼時的智慧提醒。類似的provider有很多如CsvProvider, JsonProvider, SqlProvider
等等,當然也可以寫自己的。更多的可以參看[http://fsharp.github.io/FSharp.Data/]。我第一次看見這個東西的時候非常震驚。
以前簡單得用過python作為指令碼來解析一些網頁裡面的資料,或者處理json檔案等,但是儘管傳說python非常簡單,但是易用性和開發效率對於我來說真的不是很高,尤其時型別解析和智慧提醒方面。
FSharp作為一個基於.net的函數語言程式設計語言,既可以充分利用.net生態裡的所有東西(比如c#寫的各種庫),又可以用函式式的方式來寫指令碼,加上超強的型別系統驅動的智慧提醒,那開發效率應該會高不少。