Это устанавливается в соответствии со стандартом кодирования максимум 80 символов на строку. Вы можете увеличить это из Tools-> Options. Редактор. Правое поле. Если вы не хотите его видеть, просто установите значение больше размера вашего экрана;)
Да, это возможно с использованием так называемых y-комбинаторов (или комбинаторы с фиксированной точкой
). Пример:
let rec fix f x = f (fix f) x
let fact f = function
| 0 -> 1
| x -> x * f (x-1)
let _ = (fix fact) 5 (* evaluates to "120" *)
Я не знаю статей по F #, но эта запись haskell также может быть полезна.
Но: Я бы не стал их использовать, если есть альтернатива - они довольно сложные чтобы понять.
Ваш код (опустите здесь аннотации типов) является стандартной конструкцией и гораздо более выразительной.
let listToString lst =
let rec loop acc = function
| [] -> acc
| x::xs -> loop (acc ^ (string x)) xs
loop "" lst
Обратите внимание, что, хотя вы говорите, что используете функцию только один раз, технически вы обращаетесь к ней по имени дважды, поэтому имеет смысл дать ей имя.