Salvador Fandiño García > Language-Prolog-Types-0.10 > Language::Prolog::Types::Factory

Download:
Language-Prolog-Types-0.10.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.09   Source  

NAME ^

Language::Prolog::Types::Factory - Perl extension to construct Prolog types

SYNOPSIS ^

  use Language::Prolog::Types::Factory;
  print prolog_functor("hello",2,3,4);
  print prolog_list(3,4,5);

  etc.

ABSTRACT ^

Factory module for Prolog terms.

Implements a pluggable interface that lets the constructor functions be changed to use different implementations for the actual prolog terms.

This module should be rarely used, only when interfacing Perl with a different Prolog system if the default representations for Prolog terms are not adecuate.

DESCRIPTION ^

This module implements a set of constructor functions for Prolog terms.

Internally the module use a factory object implementing new_nil, new_list, new_ulist, new_functor and new_variable. Look at Language::Prolog::Types::Internal for a real implementation of the factory interface.

There is also some intelligency added to the consructors to automatically promote types to others more adecuate. i.e. a '.'/2 functor to a list or [] to nil.

Constructor functions are reexported from Language::Prolog::Types and you should use that module instead of this one.

EXPORT

prolog_nil()

returns nil term.

prolog_list(@terms)

returns a prolog list containing terms <@terms>.

prolog_ulist(@terms, $tail)

returns an unfinished list with terms @terms and tail $tail.

prolog_functor($name, @terms)

returns a functor with name $name and arguments @terms.

prolog_variable($name) =item prolog_var($name)

return a new varaible with name $name

prolog_atom($atom)

Is not a contructor but converts any perl construct $atom to an atom.

prolog_string($string)

returns a prolog list formed by the ASCII values of $string.

SEE ALSO ^

Language::Prolog::Types, Language::Prolog::Types::Internal and Language::Prolog::Types::Abstract.

AUTHOR ^

Salvador Fandiño, <sfandino@yahoo.com>

COPYRIGHT AND LICENSE ^

Copyright 2002 by Salvador Fandiño

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: