我有幾個問題哈斯克爾寫構造函數做他們的工作
我寫這個構造被稱爲繩,我有這樣的
data Rope = TextRope{ropeText :: String}
| ConcatRope{rope1 :: Rope, rope2 :: Rope}
| SubRope{subRopetext :: Rope, starting :: Integer, ending :: Integer}
deriving Show
首先,當我作出這樣
一個TextRope*Main> let s =TextRope "why"
*Main> s
TextRope {ropeText = "why"}
*Main>
當我做矽只想得到構造函數的字符串,這是爲什麼,我不知道這一點。
也對concat和子構造函數感到好奇。具體來說,在我看來,你調用這兩個構造函數的時候發生了一些事情,你將返回連接繩索1和繩索2的結果,我不知道如何用這種語言描述,你正在定義數據結構,但不知何故的的回報是,必須通過結構
這裏來計算是一些例子的結果是什麼,這些功能是如何工作的
> let tr = TextRope "Hello,"
> let sr = TextRope " world!"
> let hw = ConcatRope tr sr
> let ow = SubRope hw 4 4
> tr
Hello,
> sr
world!
> hw
Hello, world!
排序的困惑總體而言,新的哈斯克爾構造函數和數據類型,所以一些指針會有所幫助(不是c指針雖然!)
Haskell構造函數不像Java或C++構造函數。相反,它們更像是一個標記聯盟中的「標籤」。他們不是「做事」,而是「聲明形狀」。 –