59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
return TVEC(
tft.domain(),
TERM( make_shared< Vector >( vt.persistent() ) ),
*rtSig );
}
optional< Value > BuildTFunc( const Context& c, const TFuncType& tft, const Term& identity, const Value& params, ptr< void > body )
{
auto sig = BuildTFuncSignature( c, tft );
if( !sig )
return nullopt;
return ToValue( TFunc( tft, *sig, identity, body ) );
}
optional< Term > BuildArgPatternFromTFuncType( const Context& c, const Value& tfuncType )
{
const auto& ftype = FromValue< TFuncType >( tfuncType );
|
|
|
|
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
return TVEC(
tft.domain(),
TERM( make_shared< Vector >( vt.persistent() ) ),
*rtSig );
}
Value BuildTFunc( const Context& c, const TFuncType& tft, const Term& identity, const Value& params, ptr< void > body )
{
auto sig = BuildTFuncSignature( c, tft );
if( !sig )
return PoisonValue();
return ToValue( TFunc( tft, *sig, identity, body ) );
}
optional< Term > BuildArgPatternFromTFuncType( const Context& c, const Value& tfuncType )
{
const auto& ftype = FromValue< TFuncType >( tfuncType );
|