2016-05-02 3 views
2

в этой части кода:OCaml Синтаксис: что значит >> = означает?

let rec write_from_exactly out s offs len = 
    Lwt_unix.write out s offs len >>= fun n -> 
     if n = len then Lwt.return() 
     else write_from_exactly out s (offs + n) (len - n) 
in ... 

Хотя я могу более или менее догадаться, что он делает, я не мог найти какой-либо официальное определение о том, что «>> =» означает и как это работает.

ответ

1

Символ >>= определяется Lwt, а не самим OCaml. Это инфиксный оператор, эквивалентный bind. Вы можете увидеть определение здесь: Lwt module.

+0

Кстати, вы можете напрямую ссылаться на определение на всех созданных ocamldoc страницах, но это немного сложно. В зависимости от вашего браузера выполните «Проверить элемент» или поиск в источнике, чтобы найти разметку, и вставьте идентификатор (в этом случае «VAL (>> =)»): http://ocsigen.org/lwt/2.5 .1/api/Lwt # VAL (>> =) – antron

+0

(я постараюсь это сделать. Возможно, ребята ocamldoc могут сгенерировать что-то простое для копирования/вставки. Или, может быть, браузеры должны помочь с этим?) –

+0

Я думаю, ocamldoc должен делать ценности кликабельными, где, когда вы нажимаете один, он связывает вас с якорем, и вы можете взять URL-адрес привязки из адресной строки вашего браузера. Но очевидно, что разметки еще нет. GitHub делает это, например. На данный момент разметка ocamldoc немного устарела, у нее также много структурных проблем. – antron

Смежные вопросы