[ Reference Manual | Alphabetic Index ]

# library(iso_light)

ISO Prolog compatibility library (light version) [more]

## Predicates

> <(?, ?)
>   No description available
> =:=(?, ?)
>   No description available
> =<(?, ?)
>   No description available
> =\=(?, ?)
>   No description available
> >(?, ?)
>   No description available
> >=(?, ?)
>   No description available
> abolish(?)
>   No description available
> asserta(?)
>   No description available
> assertz(?)
>   No description available
> at_end_of_stream
>   No description available
> at_end_of_stream(?)
>   No description available
> atom_chars(?, ?)
>   No description available
> atom_codes(?, ?)
>   No description available
> atom_concat(?, ?, ?)
>   No description available
> atom_length(?, ?)
>   No description available
> char_conversion(?, ?)
>   No description available
> clause(?, ?)
>   No description available
> current_char_conversion(?, ?)
>   No description available
> current_input(?)
>   No description available
> current_op(?, ?, ?)
>   No description available
> current_output(?)
>   No description available
> current_prolog_flag(?, ?)
>   No description available
> current_prolog_flag(?, ?)
>   No description available
> flush_output
>   No description available
> flush_output(?)
>   No description available
> get_byte(?)
>   No description available
> get_byte(?, ?)
>   No description available
> get_char(?)
>   No description available
> get_char(?, ?)
>   No description available
> get_code(?)
>   No description available
> get_code(?, ?)
>   No description available
> halt(?)
>   No description available
> initialization(?)
>   No description available
> is(?, ?)
>   No description available
> number_chars(?, ?)
>   No description available
> number_codes(?, ?)
>   No description available
> peek_byte(?)
>   No description available
> peek_byte(?, ?)
>   No description available
> peek_char(?)
>   No description available
> peek_char(?, ?)
>   No description available
> peek_code(?)
>   No description available
> peek_code(?, ?)
>   No description available
> put_byte(?)
>   No description available
> put_byte(?, ?)
>   No description available
> put_char(?)
>   No description available
> put_char(?, ?)
>   No description available
> put_code(?)
>   No description available
> put_code(?, ?)
>   No description available
> retract(?)
>   No description available
> set_input(?)
>   No description available
> set_output(?)
>   No description available
> set_prolog_flag(?, ?)
>   No description available
> set_prolog_flag(?, ?)
>   No description available
> set_stream_position(?, ?)
>   No description available
> stream_property(?, ?)
>   No description available
> sub_atom(?, ?, ?, ?, ?)
>   No description available
> subsumes_term(?, ?)
>   No description available
> unify_with_occurs_check(?, ?)
>   No description available

## Reexports

> reexport eclipse_language
>   except floor / 2, ceiling / 2, current_op / 3, round / 2, truncate / 2, ^ / 2, ^ / 3, is / 2, > / 2, < / 2, >= / 2, =< / 2, =:= / 2, =\= / 2, abolish / 1, asserta / 1, assertz / 1, atom_length / 2, clause / 2, get_char / 1, get_char / 2, put_char / 1, put_char / 2, retract / 1
> reexport multifile

## Other Exports

> export op(0, fy, abolish)
> export op(0, fy, dynamic)
> export chtab(96, string_quote)
> export chtab(34, list_quote)
> export syntax_option(dense_output)
> export syntax_option(not nl_in_quotes)
> export syntax_option(iso_escapes)
> export syntax_option(iso_base_prefix)
> export syntax_option(iso_restrictions)
> export syntax_option(no_string_concatenation)
> export syntax_option(eof_is_no_fullstop)
> export syntax_option(not syntax_errors_fail)
> export syntax_option(plus_is_no_sign)
> export syntax_option(doubled_quote_is_quote)
> export syntax_option(bar_is_no_atom)
> export syntax_option(blanks_after_sign)
> export syntax_option(float_needs_point)
> export syntax_option(limit_arg_precedence)
> export op(200, xfx, **)

## Description

### Overview

This library provides the essential features of ISO-Prolog (ISO/IEC 13211-1) without aiming for full conformance, in particular with respect to error handling.

This is one of three libraries providing different degrees of ISO compatibility:

iso_strict
  Aims to be fully ISO compliant, and represents the 'strict mode' required by the standard.
iso
  Aims to be fully ISO compliant, but also includes ECLiPSe functionality that does not conflict with the standard.
iso_light
  Provides the essence of ISO features without aiming for full conformance (in particular with respect to error handling), and may include ECLiPSe extensions that go beyond what the letter of the standard allows. Also useful for importing individual ISO features into a program that is otherwise written in ECLiPSe dialect.

### Usage as a language-module

The effect of this compatibility library is (with minor exceptions) local to the module where it is loaded. An program written in this dialect should always be contained in a separate module, starting with a directive like

        :- module(myisomodule, [], iso_light).

Here, the last argument of the module/3 directive indicates the language. It is not advisable to use ":-lib(iso_light)" or ":-ensure_loaded(library(iso_light))" within an eclipse_language module, because this would lead to import conflicts between the different versions of built-in predicates.

Alternatively, in order to use ISO-Prolog without having different modules, one can invoke eclipse with a "-L iso_light" command line option, or set the ECLIPSEDEFFAULTLANGUAGE environment variable to 'iso_light'. This will launch eclipse with a default module accepting 'iso_light' language instead of the usual 'eclipse_language'.

### Using individual features

It is possible and meaningful to import only individual predicates from this library, e.g.

        :- import sub_atom/5 from iso_light.

This will only make sub_atom/5 available, without affecting syntax settings in the importing module.

### Differences

The main differences of the iso_light language compared to the default eclipse_language are the following:

- The syntax is more restricted, and ISO style is preferred, e.g. for writing hexadecimal numbers.
- Double quotes denote character lists, while in ECLiPSe they denote string constants. ECLiPSe-strings can however be written using back-quotes, e.g. `abc`.
- Arithmetic functions like floor/1 return integer results.
- All ISO built-in predicates are available.

## About

- Author: Joachim Schimpf, Coninfer Ltd
- Copyright © Cisco Systems, Inc (2006), Coninfer Ltd (modifications 2007-2017)
- Date: $Date: 2017/08/24 14:37:08 $

## See Also

library(multifile), library(iso_strict), library(iso)

Generated from iso_light.eci on 2020-02-26 22:26