Recursive relationships
- Lingua principale
- Haskell
- Stelle
- 952
- Fork
- 50
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
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
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Valutazione
Questa issue non Γ¨ ancora stata valutata.