LLambda constructor may return LDelayed
This commit is contained in:
parent
609371048d
commit
a1c6da26db
@ -6,7 +6,7 @@ from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
from bu4.evaluation.constructs.evalue import EValue
|
||||
from bu4.indexing.constructs.indexed import Indexed
|
||||
from bu4.indexing.evaluation.eivtype import eivtype
|
||||
from bu4.linkable.evaluation.elvtype import elvtype
|
||||
from bu4.linking.evaluation.elvtype import elvtype
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
from bu4.parsing.extensions.CodeExtension import CodeExtension
|
||||
from bu4.transform.states.transformfinished import TransformFinished
|
||||
|
@ -7,7 +7,7 @@ from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
from bu4.evaluation.constructs.evalue import EValue
|
||||
from bu4.indexing.constructs.indexed import Indexed
|
||||
from bu4.indexing.evaluation.eivtype import eivtype
|
||||
from bu4.linkable.evaluation.elvtype import elvtype
|
||||
from bu4.linking.evaluation.elvtype import elvtype
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
from bu4.parsing.extensions.CodeExtension import CodeExtension
|
||||
from bu4.transform.states.transformfinished import TransformFinished
|
||||
|
@ -9,7 +9,7 @@ from bu4.evaluation.targets.avanonymouscontainer import AVAnonymousContainer
|
||||
from bu4.evaluation.targets.avcall import AVCall
|
||||
from bu4.indexing.constructs.indexed import Indexed
|
||||
from bu4.indexing.evaluation.eivtype import eivtype
|
||||
from bu4.linkable.evaluation.elvtype import elvtype
|
||||
from bu4.linking.evaluation.elvtype import elvtype
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
from bu4.parsing.extensions.CodeExtension import CodeExtension
|
||||
from bu4.transform.states.transformfinished import TransformFinished
|
||||
|
@ -6,8 +6,8 @@ from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
from bu4.evaluation.targets.avcall import AVCall
|
||||
from bu4.indexing.constructs.icall import ICall
|
||||
from bu4.indexing.constructs.indexed import Indexed
|
||||
from bu4.linkable.evaluation.elvtype import elvtype
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
from bu4.linking.evaluation.elvtype import elvtype
|
||||
from bu4.transform.states.aftertransform import AfterTransform
|
||||
from bu4.transform.states.transformfinished import TransformFinished
|
||||
from bu4.transform.states.transformstart import TransformStart
|
||||
|
@ -5,8 +5,8 @@ from bu4.evaluation.constructs.edelayed import EDelayed
|
||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
from bu4.indexing.constructs.idelayed import IDelayed
|
||||
from bu4.indexing.constructs.indexed import Indexed
|
||||
from bu4.linkable.evaluation.elvtype import elvtype
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
from bu4.linking.evaluation.elvtype import elvtype
|
||||
from bu4.transform.states.aftertransform import AfterTransform
|
||||
from bu4.transform.states.transformfinished import TransformFinished
|
||||
from bu4.transform.states.transformstart import TransformStart
|
||||
|
@ -4,8 +4,8 @@ from bu4.evaluation.constructs.eexception import EException
|
||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
from bu4.indexing.constructs.iexception import IException
|
||||
from bu4.indexing.constructs.indexed import Indexed
|
||||
from bu4.linkable.evaluation.elvtype import elvtype
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
from bu4.linking.evaluation.elvtype import elvtype
|
||||
from bu4.transform.states.transformfinished import TransformFinished
|
||||
from bu4.transform.states.transformstate import TransformState
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
from bu4.evaluation.constructs.attachable import Attachable
|
||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
from bu4.indexing.constructs.indexed import Indexed
|
||||
from bu4.linkable.evaluation.elvtype import elvtype
|
||||
from bu4.linking.evaluation.elvtype import elvtype
|
||||
from bu4.transform.states.transformstate import TransformState
|
||||
|
||||
__all__ = ('Linked',)
|
||||
|
@ -6,9 +6,10 @@ from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
from bu4.indexing.constructs.idelayed import IDelayed
|
||||
from bu4.indexing.constructs.ilambda import ILambda
|
||||
from bu4.indexing.constructs.indexed import Indexed
|
||||
from bu4.linkable.evaluation.ellambda import ELLambda
|
||||
from bu4.linkable.evaluation.elvtype import elvtype
|
||||
from bu4.linking.constructs.ldelayed import LDelayed
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
from bu4.linking.evaluation.ellambda import ELLambda
|
||||
from bu4.linking.evaluation.elvtype import elvtype
|
||||
from bu4.transform.states.aftertransform import AfterTransform
|
||||
from bu4.transform.states.transformfinished import TransformFinished
|
||||
from bu4.transform.states.transformstart import TransformStart
|
||||
@ -21,13 +22,16 @@ __all__ = ('LLambda',)
|
||||
class LLambda(Linked):
|
||||
value: Linked
|
||||
|
||||
def __new__(cls, name: bytes, value: Linked):
|
||||
return Linked.__new__(LLambda) if name in value.future else LDelayed(value)
|
||||
|
||||
def __init__(self, name: bytes, value: Linked):
|
||||
self.name = name
|
||||
self.value = value
|
||||
self.future = self.value.future - {name}
|
||||
self.multifuture = self.future
|
||||
self.used = name in value.future
|
||||
self.memoize = name in value.multifuture
|
||||
self.future = self.value.future - {name}
|
||||
self.multifuture = self.future if self.used else self.value.multifuture
|
||||
|
||||
def attach(self, env: elvtype) -> Evaluable:
|
||||
return (
|
||||
|
@ -3,8 +3,8 @@
|
||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
from bu4.indexing.constructs.iname import IName
|
||||
from bu4.indexing.constructs.indexed import Indexed
|
||||
from bu4.linkable.evaluation.elvtype import elvtype
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
from bu4.linking.evaluation.elvtype import elvtype
|
||||
from bu4.transform.states.transformfinished import TransformFinished
|
||||
from bu4.transform.states.transformstate import TransformState
|
||||
|
||||
|
@ -4,8 +4,8 @@ from bu4.evaluation.constructs.enull import ENull
|
||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
from bu4.indexing.constructs.indexed import Indexed
|
||||
from bu4.indexing.constructs.inull import INull
|
||||
from bu4.linkable.evaluation.elvtype import elvtype
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
from bu4.linking.evaluation.elvtype import elvtype
|
||||
from bu4.transform.states.transformfinished import TransformFinished
|
||||
from bu4.transform.states.transformstate import TransformState
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
from bu4.evaluation.constructs.eattachable import EAttachable
|
||||
from bu4.linkable.constructs.parsed import Parsed
|
||||
from bu4.linkable.evaluation.elvtype import elvtype
|
||||
from bu4.linking.evaluation.elvtype import elvtype
|
||||
from bu4.transform.transform import transform
|
||||
|
||||
__all__ = ('evaluable_from_parsed',)
|
||||
|
@ -3,9 +3,9 @@
|
||||
from bu4.evaluation.constructs.eattachable import EAttachable
|
||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
from bu4.evaluation.constructs.evalue import EValue
|
||||
from bu4.linkable.evaluation.elvtype import elvtype
|
||||
from bu4.linkable.evaluation.lambdaelv import LambdaElv
|
||||
from bu4.linking.constructs.linked import Linked
|
||||
from bu4.linking.evaluation.elvtype import elvtype
|
||||
from bu4.linking.evaluation.lambdaelv import LambdaElv
|
||||
|
||||
__all__ = ('ELLambda',)
|
||||
|
@ -4,7 +4,7 @@ from typing import Mapping, Iterator
|
||||
|
||||
from bu4.evaluation.constructs.evaluable import Evaluable
|
||||
from bu4.evaluation.targets.avnamedcontainer import AVNamedContainer
|
||||
from bu4.linkable.evaluation.elvtype import elvtype
|
||||
from bu4.linking.evaluation.elvtype import elvtype
|
||||
|
||||
__all__ = ('LambdaElv',)
|
||||
|
@ -7,7 +7,7 @@ from bu4.evaluation.constructs.edelayed import EDelayed
|
||||
from bu4.evaluation.constructs.evalue import EValue
|
||||
from bu4.evaluation.sync import sync
|
||||
from bu4.indexing.evaluation.eilambda import EILambda
|
||||
from bu4.linkable.evaluation.ellambda import ELLambda
|
||||
from bu4.linking.evaluation.ellambda import ELLambda
|
||||
from bu4.tracing.probe import Probe
|
||||
|
||||
__all__ = ('trace', 'probe_index_reset',)
|
||||
|
Loading…
Reference in New Issue
Block a user