Recursive relationships
- Lenguaje dominante
- Haskell
- Estrellas
- 952
- Forks
- 50
- MΓ©tricas de merge de PR
- Sin PR fusionados en 30 d
DescripciΓ³n
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
GuΓa de contribuciΓ³n
No hay ninguna guΓa de contribuciΓ³n indexada para este repositorio
EvaluaciΓ³n
Este issue todavΓa no se ha evaluado.