我需要一個(gè)函數(shù),該函數(shù)接受任意數(shù)量的參數(shù)(相同類型的所有參數(shù)),對(duì)它們執(zhí)行某些操作,然后返回結(jié)果。在我的具體情況下,參數(shù)列表是不可行的。在瀏覽haskell庫(kù)時(shí),我看到該函數(shù)printf(來(lái)自module Text.Printf)使用了類似的技巧。不幸的是,通過(guò)查看源代碼我無(wú)法理解這種魔力。有人可以解釋如何實(shí)現(xiàn)這一目標(biāo),或者至少可以解釋一些網(wǎng)頁(yè)/論文/無(wú)論我能在哪里找到合適的描述嗎?動(dòng)機(jī):我需要這個(gè)的原因確實(shí)很簡(jiǎn)單。對(duì)于學(xué)校(計(jì)算機(jī)科學(xué)課),我們需要編寫一個(gè)模塊,該模塊能夠“記錄”數(shù)學(xué)表達(dá)式,將其表示為字符串(通過(guò)為自己的數(shù)據(jù)類型編寫Num / Real / etc實(shí)例),然后執(zhí)行各種操作就可以了。此數(shù)據(jù)類型包含變量的特殊構(gòu)造函數(shù),可以用值或指定函數(shù)替換任何值。目標(biāo)之一是編寫一個(gè)函數(shù),該函數(shù)采用帶有一些變量(成對(duì)的type (Char,Rational))的表達(dá)式,并計(jì)算表達(dá)式的結(jié)果。我們應(yīng)該看看如何最好地表達(dá)功能的目標(biāo)。(我的想法:該函數(shù)返回另一個(gè)函數(shù),該函數(shù)接受與該函數(shù)中定義的var一樣多的參數(shù)-似乎是不可能的)。
如何創(chuàng)建多變量haskell函數(shù)?
Qyouu
2019-12-13 09:58:17