Этот код
for i=0 to 5 do print_string "a" done;;
выдаст
aaaaaa- : unit = ()
Но как я могу вывести только «aaaaaa» без вывода значения for-expression?
Вы на самом деле не печатаете значение выражения; просто вы находитесь в сеансе интерпретатора, который по умолчанию печатает значение / тип вычисленного выражения. Если вы скомпилировали свою программу, она просто напечатала бы.
Вы можете скомпилировать вашу программу; таким образом, вы не получите информацию о типе от интерпретатора - : unit = ()
: unit = ()