Recursive relationships
- Langage dominant
- Haskell
- Γtoiles
- 952
- Forks
- 50
- MΓ©triques de merge des PR
- Aucune PR mergΓ©e en 30 j
Description
Hi there π
I'm trying to work with recursive relationships.
```
TutorialD (master/main): rec := relation{tuple{src 0, tgt 1}, tuple{src 1, tgt 2}, tuple{src 2, tgt 3}}
TutorialD (master/main): :showexpr rec
ββββββββββββββ¬βββββββββββββ
βsrc::Integerβtgt::Integerβ
ββββββββββββββΌβββββββββββββ€
β0 β1 β
β1 β2 β
β2 β3 β
ββββββββββββββ΄βββββββββββββ
```
It seems to work ok for a depth 1 traversal:
```
TutorialD (master/main): :showexpr ((rec where src=0) join (rec rename {tgt as tgt2, src as tgt}))
ββββββββββββββ¬βββββββββββββ¬ββββββββββββββ
βsrc::Integerβtgt::Integerβtgt2::Integerβ
ββββββββββββββΌβββββββββββββΌββββββββββββββ€
β0 β1 β2 β
ββββββββββββββ΄βββββββββββββ΄ββββββββββββββ
```
Also if I add an edge:
```
TutorialD (master/main): insert rec relation{tuple{src 1, tgt 4}}
TutorialD (master/main): :showexpr rec
ββββββββββββββ¬βββββββββββββ
βsrc::Integerβtgt::Integerβ
ββββββββββββββΌβββββββββββββ€
β1 β4 β
β2 β3 β
β1 β2 β
β0 β1 β
ββββββββββββββ΄βββββββββββββ
TutorialD (master/main): :showexpr ((rec where src=0) join (rec rename {tgt as tgt2, src as tgt}))
ββββββββββββββ¬βββββββββββββ¬ββββββββββββββ
βsrc::Integerβtgt::Integerβtgt2::Integerβ
ββββββββββββββΌβββββββββββββΌββββββββββββββ€
β0 β1 β2 β
β0 β1 β4 β
ββββββββββββββ΄βββββββββββββ΄ββββββββββββββ
```
I can work out a way to do a depth 2 traversal:
```
TutorialD (master/main): :showexpr ((rec where src=0) join (rec rename {tgt as tgt2, src as tgt}) join (rec rename {tgt as tgt3, src as tgt2}))
ββββββββββββββ¬βββββββββββββ¬ββββββββββββββ¬ββββββββββββββ
βsrc::Integerβtgt::Integerβtgt2::Integerβtgt3::Integerβ
ββββββββββββββΌβββββββββββββΌββββββββββββββΌββββββββββββββ€
β0 β1 β2 β3 β
ββββββββββββββ΄βββββββββββββ΄ββββββββββββββ΄ββββββββββββββ
```
Can this be generalised to a depth `n` traversal? Also would it be possible to group the result by depth?
Thanks for your time!
Jun
Guide de contribution
Aucun guide de contribution indexΓ© pour ce dΓ©pΓ΄t
Γvaluation
Cette issue n'a pas encore Γ©tΓ© Γ©valuΓ©e.