Я хочу, чтобы приведенная ниже функция взяла url и вернула узел супа, используя lambdasoup
, другими словами, я хочу, чтобы тип был: val do_get : string -> soup node = <fun>
. С оператором связывания (>>=)
я могу ждать вычисления до конца sh, но это всегда возвращает другое отложенное вычисление. Я хотел бы иметь возможность завершить цепочку, превратив отложенное вычисление в нормальное значение. Что я могу сделать?
let do_get url =
let uri = Uri.of_string url in
Cohttp_async.Client.get uri
>>= fun (_, body) ->
Cohttp_async.Body.to_string body
>>= fun s -> parse s