了解和掌握scheme的意義?
01-14
想了解一下函數式泛型(functional programming paradigm), 開始接觸scheme, 發現和C之類的面向過程的語言完全不一樣, 很難理解, 很開闊眼界。不過不清楚這種語言對於程序開發有什麼實際的啟示或者參考價值?
個人覺得scheme寫出來的程序, 用尾遞歸來實現循環不太好理解, 看完教程之後發現後面的習題一半都不會做, 完全沒思路,特別是遞歸和自定義語法, 新人輕噴~
當然有意義了,你先熟悉了 Scheme,到時候轉 Haskell 的時候,就不需要花心思理解函數式編程的部分了,專心搞類型系統就好了。
至於學 Haskell 的意義嘛,套用 @vczh 的一句話,你一個人頂得上十個 Java 程序員加一票測試,還只拿五份工資,是不是(逃謝邀。對不玩PL之類的少部分人之外的人,沒啥實際意義,Scheme工作少得可說罕見、連Clojure都不如。執行效率低,標準和實現分裂,幾乎各個常見領域都有比這好得多的替代品,不過就因為沒啥意義才好玩嘛,要告訴我Java什麼的很好找工作而且只要做程序員以後有得機會寫Java,我倒反不想學了。
scheme不是孤立的,它的背後是一個lisp家族,更背後是一個FP家族。 要理解它的意義,你需要理解lambda演算的意義,一等函數的意義,代碼即數據的意義,衛生宏的意義。 然而,即使你理解了這一切的一切,你的FP之路也才剛剛開始 :)
謝邀。這是在學習一種和以往不同的思考方式。你會的思考方式越多。你就越可以自由的思考。不會被以往接觸過的某些東西禁錮住。
scheme身後是一種新的抽象方式,也就是一種新的看問題解決問題的角度。如果對於這類抽象方式沒有了解,寫scheme堪稱折磨,但有所了解後不僅可以用在函數式語言里,其他語言也可以用到。
所以學scheme千萬別只學語法。我是看SICP學的scheme。那之前我看過racket的手冊,可是怎麼也寫不好。看了SICP以後再寫scheme就順暢多了
多好玩啊,這還不夠?
scheme真不是學函數式編程的最佳入門點,因為有set!可以給變數再賦值,可以用過程式的思想寫代碼,而且缺少像模式匹配、柯里化等有意思的特性,建議先學haskell再學emacs lisp,至少比scheme實用。
個人覺得scheme寫出來的程序, 用尾遞歸來實現循環不太好理解, 看完教程之後發現後面的習題一半都不會做, 完全沒思路,特別是遞歸和自定義語法, 新人輕噴~
一開始都這樣,努力自己想,如果是SICP的話,可以到github上找找習題解答參考下。習慣的話也沒啥難懂得。
scheme不是函數式,泛型跟函數式沒關係,遞歸跟它們都沒關係,你概念完全是混亂的,不關 scheme 的事
不就是好奇和好玩和一點點裝13么?你是在說它的市場價值?別鬧了,好好擼java去吧。
推薦閱讀:
※scheme中letrec的語義要如何轉化以及實現?
※SICP 1.45證明?
※怎麼理解從lambda運算元到實際的函數式程序設計語言?
TAG:Scheme |