Hacker News new | past | comments | ask | show | jobs | submit login

I assume you know this from your reference to Hinze, but just to make the point clear:

In a pointer-to-mutable-memory language, a rope becomes a lot of recursive pointer-chasing inside a tree structure, typically referenced from the root down.

In a functional language, a rope may be built as a tree (or several subtree edits), but is processed from local cursors that have a bottom-up view from a concrete leaf position in the buffer.

A rope in a purely functional language is better described as a Finger Tree (Hinze, Paterson) [1] or Zipper (Huet) [2]:

[1] https://www.staff.city.ac.uk/~ross/papers/FingerTree.html

[2] https://www.st.cs.uni-saarland.de/edu/seminare/2005/advanced...




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: