2012-05-17 59 views
-2

可能有人請給我將利用本數據類型的函數的一個例子:實施例功能 - 功能::貨號B =>乙 - >甲 - >並[a]

function :: Num b => b -> a -> [a] 
function a b = ... 

另外理想情況下,一個將是一個字符串。

不,這不是功課的xD我只是需要一個項目的例子。

我已經試過拿B(重複),但我得到的錯誤

Could not deduce (b ~ Int) 
from the context (Num b) 
+1

這是功課? – chepner

+1

這個簽名沒有多大意義了,你想它完成任務。什麼是「函數7.3」foo「'應該返回? – leftaroundabout

回答

2

這會工作(這是適合的類型描述函數):

function :: Num b => b -> a -> [a] 
function arg1 arg2 = [arg2] 
+3

或者'function _ _ = []'。 – Vitus

+0

簡單但有效的xD –

2

你可以重複(a型)給定元素b時間,創建列表

+0

我曾嘗試飲用B從上下文(民二) –

+0

'take'需要一個'Int',所以你必須明確地轉換(重複),但我得到的錯誤,因此無法推斷(B〜智力) 的'數字到'Int'。關於第二個想法,'Num'可能是一個浮點數一樣,所以在這一點上,你需要重新思考什麼(第一輪如它)重複的東西b乘以手段 – Attila

1

前奏曲提供功能數量(比如takedrop!!splitAt,來回左右)是不必要的單態:他們要求他們給出的數字是Int。該模塊Data.List出口的這些功能,其採取任何類型的Integral類的參數多個多態性版本;他們有相同的名字,但前綴爲generic。所以,與其take a (repeat b),您可以嘗試

function a b = genericTake a (repeat b) 
+1

的'通用...'函數接受任何類型'Integral'類,這比'Num'更有意義。 – leftaroundabout

+0

@leftaroundabout感謝您的更正。 –

相關問題