jupyter
This commit is contained in:
parent
e8d9e71a4e
commit
70a43ece1d
@ -590,7 +590,7 @@ ENDIF (WITH_PYTHON)
|
|||||||
IF (WITH_R)
|
IF (WITH_R)
|
||||||
find_host_package(LibR)
|
find_host_package(LibR)
|
||||||
add_subDIRECTORY(packages/real)
|
add_subDIRECTORY(packages/real)
|
||||||
ENDIF (WITH_R)
|
ENDIF (WITH_R)
|
||||||
|
|
||||||
|
|
||||||
include(Sources)
|
include(Sources)
|
||||||
@ -811,7 +811,7 @@ endif ()
|
|||||||
if (WITH_JAVA)
|
if (WITH_JAVA)
|
||||||
#detect java setup, as it is shared between different installations.
|
#detect java setup, as it is shared between different installations.
|
||||||
|
|
||||||
find_package(Java COMPONENTS Runtime Development)
|
find_package(Java COMPONENTS Development Runtime)
|
||||||
# find_package(Java COMPONENTS Development)
|
# find_package(Java COMPONENTS Development)
|
||||||
# find_package(Java COMPONENTS Runtime)
|
# find_package(Java COMPONENTS Runtime)
|
||||||
#find_package(JavaLibs)
|
#find_package(JavaLibs)
|
||||||
|
48
CXX/yapa.hh
48
CXX/yapa.hh
@ -118,6 +118,54 @@ public:
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief YAPFunctor represents Prolog functors Name/Arity
|
||||||
|
*/
|
||||||
|
class X_API YAPFunctor : public YAPProp {
|
||||||
|
friend class YAPApplTerm;
|
||||||
|
friend class YAPTerm;
|
||||||
|
friend class YAPPredicate;
|
||||||
|
friend class YAPQuery;
|
||||||
|
Functor f;
|
||||||
|
/// Constructor: receives Prolog functor and casts it to YAPFunctor
|
||||||
|
///
|
||||||
|
/// Notice that this is designed for internal use only.
|
||||||
|
inline YAPFunctor(Functor ff) { f = ff; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
/// Constructor: receives name as an atom, plus arity
|
||||||
|
///
|
||||||
|
/// This is the default method, and the most popular
|
||||||
|
YAPFunctor(YAPAtom at, uintptr_t arity) { f = Yap_MkFunctor(at.a, arity); }
|
||||||
|
|
||||||
|
/// Constructor: receives name as a string plus arity
|
||||||
|
///
|
||||||
|
/// Notice that this is designed for ISO-LATIN-1 right now
|
||||||
|
/// Note: Python confuses the 3 constructors,
|
||||||
|
/// use YAPFunctorFromString
|
||||||
|
inline YAPFunctor(const char *s, uintptr_t arity, bool isutf8 = true) {
|
||||||
|
f = Yap_MkFunctor(Yap_LookupAtom(s), arity);
|
||||||
|
}
|
||||||
|
/// Constructor: receives name as a wide string plus arity
|
||||||
|
///
|
||||||
|
/// Notice that this is designed for UNICODE right now
|
||||||
|
///
|
||||||
|
/// Note: Python confuses the 3 constructors,
|
||||||
|
/// use YAPFunctorFromWideString
|
||||||
|
inline YAPFunctor(const wchar_t *s, uintptr_t arity) {
|
||||||
|
CACHE_REGS f = Yap_MkFunctor(UTF32ToAtom(s PASS_REGS), arity);
|
||||||
|
}
|
||||||
|
/// Getter: extract name of functor as an atom
|
||||||
|
///
|
||||||
|
/// this is for external usage.
|
||||||
|
YAPAtom name(void) { return YAPAtom(NameOfFunctor(f)); }
|
||||||
|
|
||||||
|
/// Getter: extract arity of functor as an unsigned integer
|
||||||
|
///
|
||||||
|
/// this is for external usage.
|
||||||
|
uintptr_t arity(void) { return ArityOfFunctor(f); }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif /* YAPA_HH */
|
#endif /* YAPA_HH */
|
||||||
/// @}
|
/// @}
|
||||||
|
17
CXX/yapi.cpp
17
CXX/yapi.cpp
@ -411,6 +411,23 @@ std::vector<Term> YAPPairTerm::listToArray() {
|
|||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<YAPTerm> YAPPairTerm::listToVector() {
|
||||||
|
Term *tailp;
|
||||||
|
Term t1 = gt();
|
||||||
|
Int l = Yap_SkipList(&t1, &tailp);
|
||||||
|
if (l < 0) {
|
||||||
|
throw YAPError(SOURCE(), TYPE_ERROR_LIST, (t), nullptr);
|
||||||
|
}
|
||||||
|
std::vector<YAPTerm> o = *new std::vector<YAPTerm>(l);
|
||||||
|
int i = 0;
|
||||||
|
Term t = gt();
|
||||||
|
while (t != TermNil) {
|
||||||
|
o[i++] = YAPTerm(HeadOfTerm(t));
|
||||||
|
t = TailOfTerm(t);
|
||||||
|
}
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
|
||||||
YAP_tag_t YAPTerm::tag() {
|
YAP_tag_t YAPTerm::tag() {
|
||||||
Term tt = gt();
|
Term tt = gt();
|
||||||
if (IsVarTerm(tt)) {
|
if (IsVarTerm(tt)) {
|
||||||
|
53
CXX/yapt.hh
53
CXX/yapt.hh
@ -2,6 +2,10 @@
|
|||||||
* @file yapt.hh
|
* @file yapt.hh
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef X_API
|
||||||
|
#define X_API
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup yap-cplus-term-handling Term Handling in the YAP interface.
|
* @defgroup yap-cplus-term-handling Term Handling in the YAP interface.
|
||||||
*
|
*
|
||||||
@ -240,54 +244,6 @@ public:
|
|||||||
inline bool initialized() { return t != 0; };
|
inline bool initialized() { return t != 0; };
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief YAPFunctor represents Prolog functors Name/Arity
|
|
||||||
*/
|
|
||||||
class X_API YAPFunctor : public YAPProp {
|
|
||||||
friend class YAPApplTerm;
|
|
||||||
friend class YAPTerm;
|
|
||||||
friend class YAPPredicate;
|
|
||||||
friend class YAPQuery;
|
|
||||||
Functor f;
|
|
||||||
/// Constructor: receives Prolog functor and casts it to YAPFunctor
|
|
||||||
///
|
|
||||||
/// Notice that this is designed for internal use only.
|
|
||||||
inline YAPFunctor(Functor ff) { f = ff; }
|
|
||||||
|
|
||||||
public:
|
|
||||||
/// Constructor: receives name as an atom, plus arity
|
|
||||||
///
|
|
||||||
/// This is the default method, and the most popular
|
|
||||||
YAPFunctor(YAPAtom at, uintptr_t arity) { f = Yap_MkFunctor(at.a, arity); }
|
|
||||||
|
|
||||||
/// Constructor: receives name as a string plus arity
|
|
||||||
///
|
|
||||||
/// Notice that this is designed for ISO-LATIN-1 right now
|
|
||||||
/// Note: Python confuses the 3 constructors,
|
|
||||||
/// use YAPFunctorFromString
|
|
||||||
inline YAPFunctor(const char *s, uintptr_t arity, bool isutf8 = true) {
|
|
||||||
f = Yap_MkFunctor(Yap_LookupAtom(s), arity);
|
|
||||||
}
|
|
||||||
/// Constructor: receives name as a wide string plus arity
|
|
||||||
///
|
|
||||||
/// Notice that this is designed for UNICODE right now
|
|
||||||
///
|
|
||||||
/// Note: Python confuses the 3 constructors,
|
|
||||||
/// use YAPFunctorFromWideString
|
|
||||||
inline YAPFunctor(const wchar_t *s, uintptr_t arity) {
|
|
||||||
CACHE_REGS f = Yap_MkFunctor(UTF32ToAtom(s PASS_REGS), arity);
|
|
||||||
}
|
|
||||||
/// Getter: extract name of functor as an atom
|
|
||||||
///
|
|
||||||
/// this is for external usage.
|
|
||||||
YAPAtom name(void) { return YAPAtom(NameOfFunctor(f)); }
|
|
||||||
|
|
||||||
/// Getter: extract arity of functor as an unsigned integer
|
|
||||||
///
|
|
||||||
/// this is for external usage.
|
|
||||||
uintptr_t arity(void) { return ArityOfFunctor(f); }
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Compound Term
|
* @brief Compound Term
|
||||||
*/
|
*/
|
||||||
@ -371,6 +327,7 @@ public:
|
|||||||
bool nil() { return gt() == TermNil; }
|
bool nil() { return gt() == TermNil; }
|
||||||
YAPPairTerm cdr() { return YAPPairTerm(TailOfTerm(gt())); }
|
YAPPairTerm cdr() { return YAPPairTerm(TailOfTerm(gt())); }
|
||||||
std::vector<Term> listToArray();
|
std::vector<Term> listToArray();
|
||||||
|
std::vector<YAPTerm> listToVector();
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package:
|
package:
|
||||||
name: yap4py
|
name: yap4py
|
||||||
version: 6.4.0
|
version: 6.5.0
|
||||||
|
|
||||||
requirements:
|
requirements:
|
||||||
ignore_prefix_files:
|
ignore_prefix_files:
|
||||||
|
@ -694,7 +694,7 @@ class CCDescriptor(object):
|
|||||||
print('YAP_UserCPredicate("gecode_constraint_%s", gecode_constraint_%s, %d);' \
|
print('YAP_UserCPredicate("gecode_constraint_%s", gecode_constraint_%s, %d);' \
|
||||||
% (self.api, self.api, len(self.argtypes)))
|
% (self.api, self.api, len(self.argtypes)))
|
||||||
|
|
||||||
GECODE_VERSION = None
|
GECODE_VERSION = "6.1.1"
|
||||||
|
|
||||||
def gecode_version():
|
def gecode_version():
|
||||||
#import pdb; pdb.set_trace()
|
#import pdb; pdb.set_trace()
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
GECODEDIR := $(shell g++ $(CPPFLAGS) $(CXXFLAGS) -H -E gecodedir.hh 2>&1 >/dev/null | grep gecode/kernel.hh | awk '{print $$2}' | sed 's|/kernel.hh||')
|
GECODEDIR := $(shell g++ $(CPPFLAGS) $(CXXFLAGS) -H -E gecodedir.hh 2>&1 >/dev/null | grep gecode/kernel.hh | awk '{print $$2}' | sed 's|/kernel.hh||')
|
||||||
GECODEDIR=/usr/local/opt/gecode/include/gecode
|
GECODEDIR=/usr/include/gecode
|
||||||
GECODECONFIG := $(GECODEDIR)/support/config.hpp
|
GECODECONFIG := $(GECODEDIR)/support/config.hpp
|
||||||
GECODEVERSION := $(shell cat $(GECODECONFIG) | egrep '\<GECODE_VERSION\>' | awk '{print $$3}' | sed 's/"//g')
|
GECODEVERSION := $(shell cat $(GECODECONFIG) | egrep '\<GECODE_VERSION\>' | awk '{print $$3}' | sed 's/"//g')
|
||||||
PROTOTYPES = ../gecode-prototypes-$(GECODEVERSION).hh
|
PROTOTYPES = ../gecode-prototypes-$(GECODEVERSION).hh
|
||||||
|
@ -353,27 +353,27 @@ namespace generic_gecode
|
|||||||
else return ikaboom("too late to create vars");
|
else return ikaboom("too late to create vars");
|
||||||
}
|
}
|
||||||
|
|
||||||
int new_svar(int glbMin, int glbMax, int lubMin, int lubMax,
|
int new_svar(int glbMin, int glbMax, int lub,
|
||||||
unsigned int cardMin=0,
|
unsigned int cardMin=0,
|
||||||
unsigned int cardMax=Set::Limits::card)
|
unsigned int cardMax=Set::Limits::card)
|
||||||
{
|
{
|
||||||
SetVar v(*this, glbMin, glbMax, lubMin, lubMax, cardMin, cardMax);
|
SetVar v(*this, glbMin, glbMax, lub, cardMin, cardMax);
|
||||||
return _new_svar(v);
|
return _new_svar(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
int new_ssvar(int glbMin, int glbMax, IntSet lubMin, IntSet lubMax,
|
int new_ssvar(int glbMin, int glbMax, IntSet lub,
|
||||||
unsigned int cardMin=0,
|
unsigned int cardMin=0,
|
||||||
unsigned int cardMax=Set::Limits::card)
|
unsigned int cardMax=Set::Limits::card)
|
||||||
{
|
{
|
||||||
SetVar v(*this, glbMin, glbMax, lubMin, lubMax, cardMin, cardMax);
|
SetVar v(*this, glbMin, glbMax, lub, cardMin, cardMax);
|
||||||
return _new_svar(v);
|
return _new_svar(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
int new_ssvar(IntSet glb, int lubMin, int lubMax,
|
int new_ssvar(IntSet glb, int lub,
|
||||||
unsigned int cardMin=0,
|
unsigned int cardMin=0,
|
||||||
unsigned int cardMax=Set::Limits::card)
|
unsigned int cardMax=Set::Limits::card)
|
||||||
{
|
{
|
||||||
SetVar v(*this, glb, lubMin, lubMax, cardMin, cardMax);
|
SetVar v(*this, glb, lub, cardMin, cardMax);
|
||||||
return _new_svar(v);
|
return _new_svar(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -825,10 +825,10 @@ return BOOL_VAL_RND(Rnd());
|
|||||||
int GlbMin = YAP_IntOfTerm(YAP_ARG3);
|
int GlbMin = YAP_IntOfTerm(YAP_ARG3);
|
||||||
int GlbMax = YAP_IntOfTerm(YAP_ARG4);
|
int GlbMax = YAP_IntOfTerm(YAP_ARG4);
|
||||||
int LubMin = YAP_IntOfTerm(YAP_ARG5);
|
int LubMin = YAP_IntOfTerm(YAP_ARG5);
|
||||||
int LubMax = YAP_IntOfTerm(YAP_ARG6);
|
int LubMax = YAP_IntOfTerm(YAP_ARG6); //ignore
|
||||||
int CardMin= YAP_IntOfTerm(YAP_ARG7);
|
int CardMin= YAP_IntOfTerm(YAP_ARG7);
|
||||||
int CardMax= YAP_IntOfTerm(YAP_ARG8);
|
int CardMax= YAP_IntOfTerm(YAP_ARG8);
|
||||||
int idx = space->new_svar(GlbMin,GlbMax,LubMin,LubMax,CardMin,CardMax);
|
int idx = space->new_svar(GlbMin,GlbMax,LubMin,CardMin,CardMax);
|
||||||
return YAP_Unify(result, YAP_MkIntTerm(idx));
|
return YAP_Unify(result, YAP_MkIntTerm(idx));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -839,9 +839,9 @@ return BOOL_VAL_RND(Rnd());
|
|||||||
int GlbMin = YAP_IntOfTerm(YAP_ARG3);
|
int GlbMin = YAP_IntOfTerm(YAP_ARG3);
|
||||||
int GlbMax = YAP_IntOfTerm(YAP_ARG4);
|
int GlbMax = YAP_IntOfTerm(YAP_ARG4);
|
||||||
int LubMin = YAP_IntOfTerm(YAP_ARG5);
|
int LubMin = YAP_IntOfTerm(YAP_ARG5);
|
||||||
int LubMax = YAP_IntOfTerm(YAP_ARG6);
|
int LubMax = YAP_IntOfTerm(YAP_ARG6); //ignore
|
||||||
int CardMin= YAP_IntOfTerm(YAP_ARG7);
|
int CardMin= YAP_IntOfTerm(YAP_ARG7);
|
||||||
int idx = space->new_svar(GlbMin,GlbMax,LubMin,LubMax,CardMin);
|
int idx = space->new_svar(GlbMin,GlbMax,LubMin,CardMin);
|
||||||
return YAP_Unify(result, YAP_MkIntTerm(idx));
|
return YAP_Unify(result, YAP_MkIntTerm(idx));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -852,8 +852,8 @@ return BOOL_VAL_RND(Rnd());
|
|||||||
int GlbMin = YAP_IntOfTerm(YAP_ARG3);
|
int GlbMin = YAP_IntOfTerm(YAP_ARG3);
|
||||||
int GlbMax = YAP_IntOfTerm(YAP_ARG4);
|
int GlbMax = YAP_IntOfTerm(YAP_ARG4);
|
||||||
int LubMin = YAP_IntOfTerm(YAP_ARG5);
|
int LubMin = YAP_IntOfTerm(YAP_ARG5);
|
||||||
int LubMax = YAP_IntOfTerm(YAP_ARG6);
|
int LubMax = YAP_IntOfTerm(YAP_ARG6); //ignore?
|
||||||
int idx = space->new_svar(GlbMin,GlbMax,LubMin,LubMax);
|
int idx = space->new_svar(GlbMin,GlbMax,LubMin);
|
||||||
return YAP_Unify(result, YAP_MkIntTerm(idx));
|
return YAP_Unify(result, YAP_MkIntTerm(idx));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -863,10 +863,10 @@ return BOOL_VAL_RND(Rnd());
|
|||||||
GenericSpace* space = gecode_Space_from_term(YAP_ARG2);
|
GenericSpace* space = gecode_Space_from_term(YAP_ARG2);
|
||||||
IntSet Glb = gecode_IntSet_from_term(YAP_ARG3);
|
IntSet Glb = gecode_IntSet_from_term(YAP_ARG3);
|
||||||
int LubMin = YAP_IntOfTerm(YAP_ARG4);
|
int LubMin = YAP_IntOfTerm(YAP_ARG4);
|
||||||
int LubMax = YAP_IntOfTerm(YAP_ARG5);
|
int LubMax = YAP_IntOfTerm(YAP_ARG5);//
|
||||||
int CardMin = YAP_IntOfTerm(YAP_ARG6);
|
int CardMin = YAP_IntOfTerm(YAP_ARG6);
|
||||||
int CardMax = YAP_IntOfTerm(YAP_ARG7);
|
int CardMax = YAP_IntOfTerm(YAP_ARG7);
|
||||||
int idx = space->new_ssvar(Glb,LubMin,LubMax,CardMin,CardMax);
|
int idx = space->new_ssvar(Glb,LubMin/* ,lubmax */,CardMin,CardMax);
|
||||||
return YAP_Unify(result, YAP_MkIntTerm(idx));
|
return YAP_Unify(result, YAP_MkIntTerm(idx));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -890,7 +890,7 @@ return BOOL_VAL_RND(Rnd());
|
|||||||
IntSet Glb = gecode_IntSet_from_term(YAP_ARG3);
|
IntSet Glb = gecode_IntSet_from_term(YAP_ARG3);
|
||||||
int LubMin = YAP_IntOfTerm(YAP_ARG4);
|
int LubMin = YAP_IntOfTerm(YAP_ARG4);
|
||||||
int LubMax = YAP_IntOfTerm(YAP_ARG5);
|
int LubMax = YAP_IntOfTerm(YAP_ARG5);
|
||||||
int idx = space->new_ssvar(Glb,LubMin,LubMax);
|
int idx = space->new_ssvar(Glb,LubMin/* ,lubmax */);
|
||||||
return YAP_Unify(result, YAP_MkIntTerm(idx));
|
return YAP_Unify(result, YAP_MkIntTerm(idx));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -903,7 +903,7 @@ return BOOL_VAL_RND(Rnd());
|
|||||||
IntSet Lub = gecode_IntSet_from_term(YAP_ARG5);
|
IntSet Lub = gecode_IntSet_from_term(YAP_ARG5);
|
||||||
int CardMin = YAP_IntOfTerm(YAP_ARG6);
|
int CardMin = YAP_IntOfTerm(YAP_ARG6);
|
||||||
int CardMax = YAP_IntOfTerm(YAP_ARG7);
|
int CardMax = YAP_IntOfTerm(YAP_ARG7);
|
||||||
int idx = space->new_ssvar(GlbMin,GlbMax,Lub,Lub,CardMin,CardMax);
|
int idx = space->new_ssvar(GlbMin,GlbMax,Lub,CardMin,CardMax);
|
||||||
return YAP_Unify(result, YAP_MkIntTerm(idx));
|
return YAP_Unify(result, YAP_MkIntTerm(idx));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -915,7 +915,7 @@ return BOOL_VAL_RND(Rnd());
|
|||||||
int GlbMax = YAP_IntOfTerm(YAP_ARG4);
|
int GlbMax = YAP_IntOfTerm(YAP_ARG4);
|
||||||
IntSet Lub = gecode_IntSet_from_term(YAP_ARG5);
|
IntSet Lub = gecode_IntSet_from_term(YAP_ARG5);
|
||||||
int CardMin = YAP_IntOfTerm(YAP_ARG6);
|
int CardMin = YAP_IntOfTerm(YAP_ARG6);
|
||||||
int idx = space->new_ssvar(GlbMin,GlbMax,Lub,Lub,CardMin);
|
int idx = space->new_ssvar(GlbMin,GlbMax,Lub,CardMin);
|
||||||
return YAP_Unify(result, YAP_MkIntTerm(idx));
|
return YAP_Unify(result, YAP_MkIntTerm(idx));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,16 +79,14 @@ python_query( Caller, String, Bindings ) :-
|
|||||||
output(Caller, Bindings).
|
output(Caller, Bindings).
|
||||||
|
|
||||||
output( Caller, Bindings ) :-
|
output( Caller, Bindings ) :-
|
||||||
fail,
|
Caller.answer := {},
|
||||||
Answer := {},
|
/* % start_low_level_trace,
|
||||||
% start_low_level_trace,
|
|
||||||
foldl(ground_dict(answer), Bindings, [], Ts),
|
foldl(ground_dict(answer), Bindings, [], Ts),
|
||||||
term_variables( Ts, Hidden),
|
term_variables( Ts, Hidden),
|
||||||
foldl(bv, Hidden , 0, _),
|
foldl(bv, Hidden , 0, _),
|
||||||
maplist(into_dict(Answer),Ts),
|
*/ maplist(into_dict(answer),Bindings),
|
||||||
Caller.answer := Answer,
|
:= print(answer)},
|
||||||
fail.
|
Caller.answer := answer.
|
||||||
|
|
||||||
|
|
||||||
output( _, Bindings ) :-
|
output( _, Bindings ) :-
|
||||||
write_query_answer( Bindings ),
|
write_query_answer( Bindings ),
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import readline
|
import readline
|
||||||
|
import copy
|
||||||
from yap4py.yap import *
|
from yap4py.yap import *
|
||||||
from yap4py.systuples import *
|
from yap4py.systuples import *
|
||||||
from os.path import join, dirname
|
from os.path import join, dirname
|
||||||
@ -76,11 +77,10 @@ class Query (YAPQuery):
|
|||||||
return self.port == "fail" or self.port == "exit"
|
return self.port == "fail" or self.port == "exit"
|
||||||
|
|
||||||
def __next__(self):
|
def __next__(self):
|
||||||
self.answer = {}
|
|
||||||
if self.port == "fail" or self.port == "exit":
|
if self.port == "fail" or self.port == "exit":
|
||||||
raise StopIteration()
|
raise StopIteration()
|
||||||
if self.next():
|
if self.next():
|
||||||
return self.answer
|
return copy.deepcopy(self.answer)
|
||||||
raise StopIteration()
|
raise StopIteration()
|
||||||
|
|
||||||
def name( name, arity):
|
def name( name, arity):
|
||||||
|
@ -333,9 +333,9 @@ The following magic functions are currently available:
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
default_banner_parts = ["Python %s\n"%sys.version.split("\n")[0],
|
default_banner_parts = ["YAP %s\n"%sys.version.split("\n")[0],
|
||||||
"Type 'copyright', 'credits' or 'license' for more information\n" ,
|
"Type 'copyright', 'credits' or 'license' for more information\n" ,
|
||||||
"yap_ipython {version} -- An enhanced Interactive Python. Type '?' for help.\n".format(version=release.version),
|
"yap_ipython {version} -- An enhanced Interactive Prolog for Jupyter. Type '?' for help.\n".format(version=release.version),
|
||||||
]
|
]
|
||||||
|
|
||||||
default_banner = ''.join(default_banner_parts)
|
default_banner = ''.join(default_banner_parts)
|
||||||
|
@ -563,7 +563,8 @@ class YAPRun(InteractiveShell):
|
|||||||
self.answers = []
|
self.answers = []
|
||||||
for answer in self.query:
|
for answer in self.query:
|
||||||
print( answer )
|
print( answer )
|
||||||
self.answers += [copy.deepcopy(answer)]
|
self.answers += [answer]
|
||||||
|
print( self.answers)
|
||||||
self.iterations += 1
|
self.iterations += 1
|
||||||
|
|
||||||
self.os = None
|
self.os = None
|
||||||
|
@ -13,7 +13,8 @@ set (SOURCES yap.i)
|
|||||||
if (ANDROID)
|
if (ANDROID)
|
||||||
add_subdirectory(android)
|
add_subdirectory(android)
|
||||||
else(ANDROID)
|
else(ANDROID)
|
||||||
# add_subdirectory(java)
|
add_subdirectory(R)
|
||||||
|
add_subdirectory(java)
|
||||||
endif(ANDROID)
|
endif(ANDROID)
|
||||||
|
|
||||||
set_property( DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS SWIGYAP=1)
|
set_property( DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS SWIGYAP=1)
|
||||||
|
Reference in New Issue
Block a user