2012-10-24 59 views
1

ML功能增加了所以我給這個自定義數據類型

datatype intnest = INT of int 
        | LIST of intnest list; 

有人告訴我寫一個函數來addup的intnest內的所有整數。一個問題是我真的不明白什麼是最簡單的。你能給我一個有效的證明嗎?

我需要一些東西來檢查我寫的方法,而我嘗試的任何方法都會被接受。

我已經試過的東西,如:

val in1 = [1,2,3,[1,2,3]]; 
val in2 = [1,2,3,[1]]; 

等等......所以,如果你能給我一個例子這將會是強大的幫助。

謝謝!

回答

2

這個想法是使用從基本情況開始的構造函數來構建值。例如,我們有構造INT of int這樣:

  • INT 1類型爲intnest
  • INT 2intnest
  • INT 3類型的類型爲intnest

把三個值到一個列表,你有[INT 1, INT 2, INT 3]類型intnest list。現在看看第二個構造函數LIST of intnest list,你可以很容易地看到,

LIST [INT 1, INT 2, INT 3]intnest

重複的過程中,你還可以:

  • [INT 1, INT 2, INT 3, LIST [INT 1, INT 2, INT 3]]intnest list
  • LIST [INT 1, INT 2, INT 3, LIST [INT 1, INT 2, INT 3]]intnest
+0

謝謝你,這是一個很大的幫助,只是不能讓我的頭圍繞那一個。 – Nick

相關問題