2015-06-06 1 views
3

У меня следующая проблема в SML: я хочу, чтобы создать набор, используя IntListSet подпись, но вместо int я хочу использовать large int. Есть ли способ исправить это?Large Int Набор в SML

Спасибо, в ожидании ответа .

+1

Пожалуйста, не забудьте отметить ответы, как принято, если они помогли вам решить вашу проблему. –

ответ

3

Вы можете использовать функтор ListSetFn. Из документации, вы найдете:

functor ListSetFn (ORD_KEY) : ORD_SET 

Это говорит о том, что ListSetFn функтор, который принимает структура, удовлетворяющая ORD_KEY подпись, которую вы можете найти в документации, как:

type ord_key 
val compare : (ord_key * ord_key) -> order 

Так в основном, вам необходимо создать структуру, которая удовлетворяет ORD_KEY подписи, такие как:

structure LargeIntKey : ORD_KEY = 
struct 
    type ord_key = LargeInt.int 
    val compare = LargeInt.compare 
end 

И тогда вы можете создать LargeInt экземпляр ListSetFn функтора, выполнив:

structure LargeIntSet = ListSetFn(LargeIntKey) 
+0

Большое спасибо! Действительно полезно! –

+0

@JohnSig Если бы это ответили на ваш вопрос (как это сделал мой родственный вопрос, вероятно, вы должны принять это как правильный ответ;)). –