假设我有一个整数类型的列表 [blah;blah;blah;...] 并且我不知道 lis 的大小,我想进行模式匹配而不是打印列表的第一个元素。有没有办法在不使用 if else 情况或出现语法错误的情况下做到这一点?因为我要做的就是解析一个看起来像 a/path/to/blah/blah/../file.c 的文件,并且只打印 path/to/blah/blah
例如,可以这样做吗?
let out x = Printf.printf " %s \n" x
let _ = try
while true do
let line = input_line stdin in
...
let rec f (xpath: string list) : ( string list ) =
begin match Str.split (Str.regexp "/") xpath with
| _::rest -> out (String.concat "/" _::xpath);
| _ -> ()
end
但如果我这样做,我会在 String.concat 行出现语法错误!