| Language-MzScheme documentation | Contained in the Language-MzScheme distribution. |
Language::MzScheme - Perl bindings to PLT MzScheme
This document describes version 0.09 of Language::MzScheme, released December 22, 2004.
use Language::MzScheme;
my $env = Language::MzScheme->new;
my $obj = $env->eval('(+ 1 2)');
# See t/*.t in the source distribution for more!
This module provides Perl bindings to PLT's MzScheme language.
For a proof-of-concept interpreter that can mix Perl and MzScheme code, see the mzperl utility bundled with this distribution.
The documentation is sorely lacking at this moment. For an overview of supported features, please consult t/*.t in the source distribution.
Autrijus Tang <autrijus@autrijus.org>
Copyright 2004 by Autrijus Tang <autrijus@autrijus.org>.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Language-MzScheme documentation | Contained in the Language-MzScheme distribution. |
package Language::MzScheme; $Language::MzScheme::VERSION = '0.09'; use strict; use vars qw(@EXPORT @EXPORT_OK %EXPORT_TAGS); use Language::MzScheme_in; use Language::MzScheme::Env; use Language::MzScheme::Object; BEGIN { @EXPORT_OK = @EXPORT; @EXPORT = (); %EXPORT_TAGS = ( all => \@EXPORT_OK ); }
sub new { my $self = shift; return Language::MzScheme::Env->new(@_); } if (!$Language::MzScheme::Initialized) { no strict 'refs'; if (defined &mzscheme_init) { mzscheme_init(); $Language::MzScheme::scheme_case_sensitive = 1; } foreach my $func (@EXPORT_OK) { my $idx = index(lc($func), 'scheme_'); $idx > -1 or next; my $sym = substr($func, $idx + 7); my $code = __PACKAGE__->can($func); *$sym = sub { shift; goto &$code } unless defined &$sym or defined $$sym; } foreach my $func (@EXPORT_OK) { my $idx = index(lc($func), 'mzscheme_'); $idx > -1 or next; my $sym = substr($func, $idx + 9); my $code = __PACKAGE__->can($func); *$sym = sub { shift; goto &$code } unless defined &$sym or defined $$sym; } $Language::MzScheme::Initialized++; } 1; __END__