SML имеет статическую типизацию, поэтому тип любого значения в программе статически известен во время компиляции. Я не уверен, что вы хотите, когда вы хотите «распечатать».
Может быть, вы не можете понять, глядя на код самостоятельно, что это за тип. Когда вы определяете значение на верхнем уровне в интерпретаторе, либо напрямую, либо если вы загружаете файл, используя use "whatever.sml";
, интерпретатор сообщит вам тип, выведенный для этого значения.
Кроме того, если у вас есть фрагмент кода, вы можете опубликовать его (а также любой код, от которого он зависит) здесь, и мы можем помочь вам выяснить, какой тип имеет конкретное значение в нем.
Если вы хотите убедиться, что определенное значение относится к определенному типу, вы можете использовать защиту типа: (expression : type)
- это то же самое, что и expression
, за исключением того, что во время проверки типа он будет гарантировать, что это выражение того типа .
Если вы хотите каким-то образом получить информацию о типе во время выполнения, я не думаю, что вы можете, и вам не нужно, потому что это уже известно во время компиляции.