-
Notifications
You must be signed in to change notification settings - Fork 2
Utility functions #11
Copy link
Copy link
Open
Description
We should be able to provide functions like benda.util.to_tree(xs: Iterable[T]) -> Tree[T] native-optimized, though I'm not sure on the interface format.
We should also be able to iterate over Tree and List easily and
native-optimizedly with functions like benda.util.from_tree(tree: Tree[T]) -> Iterator[T]:
tree = book.adts.Tree.Node(…, …, …)
for x in benda.util.iter_tree(tree):
print(x)I'm inclined to think we should not provide this __iter__ behavior directly on
the types of Tree.Node etc because this behavior is not that obvious and is
implemented as separate functions on Bend's side.
-
benda.util.to_nat(int) -> NatthrowsValueError("Negative integer") -
benda.util.from_nat(Nat) -> int -
benda.util.to_string(str) -> String -
benda.util.from_string(String) -> str -
benda.util.to_list(Iterable[T]) -> List[T] -
benda.util.from_list(List[T]) -> list[T] -
benda.util.iter_list(List[T]) -> Iterator[T] -
benda.util.iter_tree(Tree[T]) -> Iterator[T]
Note: str conversion from and to String should probably also automatic, but we can't
do that for int ↔ Nat because they don't map directly.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels