Logtalk built-in predicate: implements_protocol/2-3

contents > reference manual > built-in predicates

## `implements_protocol/2-3`

#### Description

>     implements_protocol(Object, Protocol)
>     implements_protocol(Category, Protocol)

>     implements_protocol(Object, Protocol, Scope)
>     implements_protocol(Category, Protocol, Scope)

> Enumerates, by backtracking, all pairs of entities such that an object or a category implements a protocol.

#### Template and modes

>     implements_protocol(?object_identifier, ?protocol_identifier)
>     implements_protocol(?category_identifier, ?protocol_identifier)

>     implements_protocol(?object_identifier, ?protocol_identifier, ?scope)
>     implements_protocol(?category_identifier, ?protocol_identifier, ?scope)

#### Errors

> Object is neither a variable nor a valid object identifier:
>   `type_error(object_identifier, Object)`
> Category is neither a variable nor a valid category identifier:
>   `type_error(category_identifier, Category)`
> Protocol is neither a variable nor a valid protocol identifier:
>   `type_error(protocol_identifier, Protocol)`
> Scope is neither a variable nor a valid entity scope:
>   `type_error(scope, Scope)`

#### Examples

>     | ?- implements_protocol(List, listp).

>     | ?- implements_protocol(List, listp, public).

previous | glossary | next
Copyright © Paulo Moura — Logtalk.org