У меня вроде как работает Fsi.exe, как и ожидалось, на Mac OS X (Snow Leopard) с Mono. Я только заметил немного странное поведение с вырезкой и вставкой, и я задавался вопросом, видел ли кто-нибудь это.
Я определил следующий псевдоним для fsi:
alias fsi='ledit mono ~/FSharp-1.9.7.8_2/bin/fsi.exe --gui-'
ledit - это утилита Ocaml, которая, кажется, обеспечивает правильную работу ввода с клавиатуры - без нее, fsi просто никогда не читает ввод. Чтобы понять, что я имею в виду, попробуйте Fsi.exe без ledit и введите
let square x = x * x;;
без ледита, кажется, никогда не анализировать ввод. Я имею в виду, что он никогда не возвращается к приглашению «>» после ввода строки. С ledit приглашение «>» возвращается немедленно.
Конечно, --gui- не позволяет fsi отображать все сообщения об отсутствии System.Drawing и т. Д.
Так что, похоже, все это работает. Странность в том, что когда я копирую и вставляю код в FSI, некоторые символы, кажется, повторяются снова и снова. Кажется, это обусловлено размером буфера, в который я вставляю. Когда я вставляю небольшие фрагменты, проблем не возникает. Но если я вставлю куски большего размера, это странно.
Если я сделаю следующее:
open System.IO;;
затем вставьте этот фрагмент кода в FSI:
let buildFileList basepath filespec =
seq {
yield! Directory.GetFiles(basepath, filespec, System.IO.SearchOption.AllDirectories)
}
Это отлично работает. Но если я скопирую и вставлю больший кусок кода, заканчивающийся этим, он повторяет часть до результата! снова и снова. Похоже, это как-то связано с попыткой fsi проанализировать код во время его вставки, потому что тот же самый вставленный код вызовет ошибки синтаксического анализа (например, FS0010) при вставке в конце длинного фрагмента, но не вызовет ошибку он изолирован.
Если я # загружаю весь файл, он также правильно анализируется, поэтому я думаю, что мой код в порядке.
Эта странность в копировании / вставке, кажется, происходит как с, так и без ledit в командной строке. Я не против исследовать эту проблему самостоятельно, но я как бы озадачен тем, где мне следует продолжить это. Я копирую из GVim, если это имеет значение, но у кого-нибудь есть идеи, где я мог бы попытаться выделить причину этого странного поведения? Я полагаю, что я мог бы сделать дополнительный шаг, сначала скопировав в TextEdit, а затем попытаться скопировать в fsi, но есть ли идеи помимо этого?
В итоге: кто-нибудь еще видел это странное поведение? Если нет, какие-либо предложения о том, как я могу поступить, пытаясь выделить причину этого странного поведения?