2011-09-13 89 views
-2

我來自html/css/javascript/jQuery的1年編程和6個月的Java's JSP Servelets的背景。我在大學第二年,第二年的最後一學期我沒有通過功能編程課程我們正在學習哈斯克爾(也許主要是因爲我掌握了90%的分數)。似乎在我的第二年,我還將參加哈斯克爾女巫課程,因此學習基礎知識不夠。函數式編程和Haskell

我所感興趣的是:OOP編程和編程功能之間

建議初學者 - 什麼書使用哈斯克爾功能編程

-the差別(我似乎無法使頭部或尾部什麼樣的教授寫)

-where去練習語言,我的書

- 什麼我能和Haskell和不能做做在Java中

完成後,

待辦事宜我需要很多數學的理解哈斯克爾(我的大學教授,在使用過程中HES大量的數學相關的東西)

+4

http://stackoverflow.com/questions/16918/beginners-guide-to-haskell –

+1

所有這一切都是在網絡上搜索平凡。國際海事組織[學習你一個好的Haskell](http://learnyouahaskell.com/)是無價的。 –

+3

你在這裏問了很多廣泛的問題。你爲什麼不看看[haskell.org](http://haskell.org/),如果你有任何問題,回來更具體的問題? – hammar

回答

5

的個體差異beetween OOP編程和編程功能

從你的背景,你可能不知道有足夠的瞭解OOP的比較是有用的。忘記它吧,並且自己學習函數式編程。

什麼書recomended在使用哈斯克爾功能編程一個beginer(我似乎無法做出的PROFESOR寫什麼heade或故事)

其他人不斷提的瞭解你是有原因的一個Haskell 。 :]

哪裏去練習語言,我的書

在您的計算機完成後?獲取編譯器,獲取代碼編輯器,開始編程。邊做邊學是最好的方法。

我能與Haskell和不能做做在Java中

中平凡,沒有什麼。兩種語言都可以做任何你可能想做的事情,最終。

而且,您還沒有花費足夠的時間用Java來比較語言,因此無論如何只需要學習Haskell。

,我需要很多數學的理解哈斯克爾(我coledge PROFESOR用於HES當然很多數學相關的東西)

不是真的。儘管如此,一些離散數學和形式邏輯仍然有幫助,但這就是你在任何CS程序中都應該獲得的東西。

4

如果你錯過了大部分的講座,然後我沒有很多的同情。但我會盡力幫忙。

1:OOP和Functional的區別:大問題。就目前而言,我會試着用開放的態度來對待Haskell,而不是試圖根據與OOP的區別來理解它。

2:「瞭解你一個Haskell」和「真實世界Haskell」都可以在網上找到。

3:通過書中的練習。然後看看歐拉工程中的練習。

4:兩者都是通用語言,所以任何應用程序都可以同時寫入。 Haskell實現更高的類型安全性和更短的代碼。

5:不,但數學可以幫助您更深層次地理解它。我一邊走,一邊拿起相關數學。查看維基百科上的數學術語,不要過多地冒汗。

+0

當你工作時,你沒有很多時間來參加所有的課程,但thanx的信息 – Aly

+3

減少課程? –

+2

@Aly:如果你沒有足夠的時間去參加大多數的講座,你肯定沒有足夠的時間來完成所需的學習。除了每週坐幾次房間,然後希望獲得及格分數以外,還有更多的要學習。 –

3

Learn You a Haskell for Great Good開始。另外,請看jQuery庫的設計,因爲它的許多功能都是圍繞函數式編程技術設計的。

此外,我強烈建議你花些時間來提高你的英語水平。在我看來,編程對語言來說至少與數學有關。從你的評論到目前爲止,我懷疑你們對待兩者的方法有些草率。這將是最難克服的問題。作爲一般規則,編程系統非常嚴格,無論如何,您需要學習如何更精確地組織自己的想法。

1

我同意上面的意見 - 缺少講座是一件壞事,良好的英語是一個很好的技能。

  • 當然 - 已經提到的Learn you a Haskell for great good - 是開始的位置。
  • Here是德國運動班的錄音,但口語是英語(帶有德語口音)。
  • 還有一件事,你還應該知道的是:Hoogle,一個如果不是最大的事情,當談到學習哈斯克爾(恕我直言) - 一種可搜索的文件:
    • ,如果你搜索功能拉出列表的末尾 - 但您不知道名稱:
      hoogle: [a]-> a 列出了具有給定類型簽名的所有函數 - last,它是您查找的函數,就是其中之一。
  • 另一件事 - 幫助我發展我的Haskell技能就是 - syntastic在vim,語法檢查器,它加快了「編譯 - 檢查 - 運行」的巨量型單循環起來,hlint - 一個掉毛的工具,這使得代碼更加可讀 - 並且向你展示了你添加到代碼中的不必要的東西,我真的學會了用這種方式來修改代碼的東西。
  • 以IO開頭 - 有this偉大的文章。這也是經驗豐富的功能程序員思考的一個很好的介紹。
  • 而對於先進的東西,並認識單子有Monad讀者recent stuff,older stuff值得攻擊,我聽說,特別是#13。

如果你已經知道,並如Java看看Clojure