So it sounds like OracleGate needs the function to not be symbolic at
all. You can use the following to create a symbolic function that
evaluates as a given lambda:

>>> f = Function('f', eval=lambda x: x == 1)
>>> f(1)
True
>>> f(0)
False

Aaron Meurer

On Wed, Sep 29, 2021 at 8:19 PM Chris Smith <smi...@gmail.com> wrote:
>
> The problem is that this returns an Eq instead of False when it is not equal:
> ```
> >>> f = lambda x: x == 1
> >>> F = Lambda(x, f(SymbolicEquality(x)))
> >>> F(1)
> True
> >>> F(x)
> Eq(x, 1)
> >>> f(x)
> False
> ```
>
> On Tuesday, September 28, 2021 at 1:42:27 AM UTC-5 Oscar wrote:
>>
>> On Tue, 28 Sept 2021 at 04:13, Chris Smith <smi...@gmail.com> wrote:
>>>
>>> I would like to emulate something like this with Basic objects. I am 
>>> drawing a blank on how that might be done. Does anyone have any ideas?
>>>
>>> >>> f=lambda x: x==1
>>> >>> f(1)
>>> True
>>> >>> Lambda(x, f(x))(1) # doesn't work
>>> False
>>
>>
>> Something like this:
>>
>> In [7]: cat w.py
>> class SymbolicEquality:
>>     def __init__(self, sym):
>>         self.sym = sym
>>     def __eq__(self, other):
>>         return Equality(self.sym, other)
>>
>> In [8]: f = lambda x: x == 1
>>
>> In [9]: y = Dummy('y')
>>
>> In [10]: F = Lambda(y, f(SymbolicEquality(y)))
>>
>> In [11]: F
>> Out[11]: y ↦ y = 1
>>
>> --
>> Oscar
>
> --
> You received this message because you are subscribed to the Google Groups 
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sympy+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sympy/13d15197-0d82-4312-b94a-ec59df616aedn%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAKgW%3D6%2BRSJawfC6s_0A1NBEvdOL3PE_LUKX2wStxvP%2B59P1R3w%40mail.gmail.com.

Reply via email to