2009-03-23 3 views
-1

Я новичок, изучающий sml, и вопрос, который мне дается, включает функции IO, которые я не понимаю. Вот 2 вопроса, на которые мне действительно нужна помощь, чтобы начать меня, пожалуйста, предоставьте мне код и какое-то объяснение, я смогу использовать пробную версию и ошибку с кодом, указанным для других вопросов.smlnj listdir проблемы

Q2) readlist (filename), который считывает список имен файлов (каждый из которых был произведен с помощью listdir в (Q1) и объединяет их в один большой список. (читается из текстового файла в Q1, а затем назначает содержимое в 1 большой список, содержащий всю информацию)

Дело в том, что я только учился у преподавателя в школе на вводной части, даже не показан пример ввода системы или вывода, даже функция «использовать файл» Если кто-то, кто знает sml, видит это, пожалуйста, помогите. Спасибо всем, кто приложил все усилия, чтобы помочь мне.

Спасибо за ответ, в настоящее время я использую SMLNJ, чтобы попытаться это сделать. что Q1 требует, чтобы я перечислил файлы каталога «имя_каталога», предоставленные в текстовый файл в «filename». Q2 требует, чтобы я прочитал текстовый файл «filename», а затем разместил его в одном большом списке.

BTW, если вы люди только следили за этим сообщением, пожалуйста, попробуйте также задать вопросы. В настоящее время я застрял пытаюсь читать из текстового файла и добавления его в список, я могу сделать это для одной линии, но сейчас пытаюсь сделать это для всего файла:

fun readlist(infile : string) = 
let val ins = TextIO.openIn infile 

fun listing() = 
TextIO.inputLine ins; 

in listing() 
end; 
TextIO.closeIn; 
+0

Это не совсем понятно, о чем вы спрашиваете. Вам нужно реализовать эти две функции, или они реализованы, и вам нужно использовать их для чего-то? – jalf

ответ

1

Это очень Мне трудно понять, на какие вопросы вы пытаетесь спросить.

Функции, о которых вы просите, не входят в стандартную базовую библиотеку для ML. Если вы должны их написать, вам будет сложно провести время без какого-либо модуля Posix. Вы можете сказать своему инструктору, что мне это не нужно.

Москва ML содержит listDir функцию, которая превосходно проста:

- load "Mosml"; 
> val it =() : unit 
- Mosml.listDir "."; 
> val it = ["natural-semantics.djvu", "natural-semantics.pdf"] : string list 
- 

Чтобы получить дополнительную помощь, пожалуйста, быть немного понятнее, что вы просите.


EDIT: Поскольку это домашнее задание вопрос, который я не должен просто дать вам ответ, но некоторые полезные функции включают в себя openDir, readDir и closeDir из OS.Filesys структуры. Они расскажут вам, что находится в каталоге. Затем для чтения и записи файлов вам понадобится TextIO.

Вы найдете Standard Basis Library documentation незаменимым.

+0

Спасибо за ответ, текущий Я использую SMLNJ, чтобы попробовать и сделать это. В принципе, Q1 требует, чтобы я перечислял файлы каталога «имя_каталога», предоставленные в текстовый файл в «filename». Q2 требует, чтобы я прочитал текстовый файл «filename», а затем разместил его в одном большом списке. – 2009-03-23 02:59:48

+0

ОК, я добавил несколько предложений о том, какие функции использовать. Все они находятся в SML/NJ, по крайней мере, на моей машине, которая является версией 110.67. –

+0

Thx для функций, его полезно. могу ли я попросить какое-то объяснение по поводу чего-то интересного (a: something) = let val a = a +1 в конце Я действительно не понимаю, как работает «let», «in», «end», есть webby to читайте о них? – 2009-03-25 08:05:19

1

Вы уверены, что я не научил вас? Я должен мне один куриный пирог.

+0

Я могу подтвердить, что функция «file.sml» не была преподана, и вещи TEXTIO также не учат. То, чему учат, в основном val a = что-то, список, забава что-то (a, b) = что-то; , а не что-то из курса. Лаборатории и лекции показаны путем ввода в cmd и не использовать файл "file.sml" – 2009-03-25 07:55:51