diff options
author | dianshi <dianshi@main.lv> | 2020-07-10 22:37:02 +0100 |
---|---|---|
committer | dianshi <dianshi@main.lv> | 2020-07-10 22:37:02 +0100 |
commit | 0aeabc5237e0046f6c9c186a87f9e00484f9643a (patch) | |
tree | 114610a5cadb8481ca97eecdef32c322f1533946 /ols | |
parent | 2e81ecf46d44b91bcdef35ef3e900554f3cb187c (diff) | |
download | osystem-0aeabc5237e0046f6c9c186a87f9e00484f9643a.tar.gz osystem-0aeabc5237e0046f6c9c186a87f9e00484f9643a.zip |
Create recrusive print list function
Diffstat (limited to 'ols')
-rw-r--r-- | ols/ols.ml | 21 |
1 files changed, 18 insertions, 3 deletions
@@ -3,23 +3,38 @@ open Unix open Scanf open Printf + +let files = ref [];; + let main dir = let _ = Printf.printf "list directory %s" dir in + (*let files = ref [""] in*) let dirfd = opendir dir in try while true do let fname = readdir dirfd in - Printf.printf "%s\n" fname - done + let _ = (Printf.printf "%s\n" fname) in + files := List.append !files [fname] + done with End_of_file -> closedir dirfd +let rec print_list lst = + match lst with + | [] -> [] + | hd::tl -> + let _ = Printf.printf "%s\n" hd in + print_list tl let num = Array.length Sys.argv let _ = if num == 2 then begin (*Printf.printf "%s\n" Sys.argv.(1) *) - main Sys.argv.(1) + let _ = main Sys.argv.(1) in + let _ = print_list !files in + Printf.printf "\n" end else + begin main "." + end |