2013-11-11 2 views
0

Я изучаю OCaml в наши дни некоторым базовым материалом и проектом, написанным в OCaml. Но я не понимаю некоторых символов в OCaml. Например:Не понимаю символов в OCaml

open Batteries 

type char_token = [ 
     | `Char of int 
     | `Escape of char list 
     ] 

Что это за символ с символом `mean?
А также другие символы трудно для меня, чтобы понять:

  • |>
  • _

Я не могу найти ничего в OCaml Manual. Может ли кто-нибудь объяснить более подробную информацию о символах выше? Или просто порекомендуйте мне какой-нибудь материал?

ответ

2

`` Foo and [> `вариант полиморфной версии (http://caml.inria.fr/pub/docs/manual-ocaml-4.00/manual006.html#toc36), вероятно, не стоит для новичка, но вы можете посмотреть на один из моих старых ответов (Extending an existing type in OCaml), чтобы узнать, как их использовать.

_ это шаблон, который соответствует ничего:

let head l = match l with 
| x :: _ -> x 
| _ -> failwith "empty list" 

как _ Есть польза сказать компилятору «что-то я не волнует».

+0

Другой символ: ~. Как использовать этот? – KUN

+0

Тильда не является оператором на своем собственном; существует '~ -' и' ~ -.', которые определяют унарное отрицание для целых чисел и чисел с плавающей запятой соответственно. Все они перечислены в документации модуля модуля Pervasives. – nlucaroni

+1

Существует еще одно использование для ~. В OCaml вы можете определить функции, помеченные (например, именованные) аргументы, как в: 'let f ~ x ~ y = x - y'. Теперь вы можете передать аргументы в 'f' на основе имен, а не в позиции:' let x = 2 в let y = 1 в f ~ y ~ x' вернет '1', а не' -1'. – Virgile

1

Идентификаторы, которые начинаются с `polymorphic variants. Грубо говоря, это структурно типизированные варианты.

|> является оператором инфикс: вы, вероятно, думаете о том, определенных в Batteries, что применение функции (x |> f значения f x).

_ является специальным символом в шаблонах совпадений, означающим «соответствовать чему-либо без привязки».

+0

Другой символ: ~. Как использовать этот? – KUN

+1

'|>' фактически добавлен в стандартную библиотеку в 4.01. – Tarmil

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