Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate @YueLiPicasso's tutorial #139

Open
4 of 19 tasks
Kakadu opened this issue Aug 10, 2021 · 0 comments
Open
4 of 19 tasks

Integrate @YueLiPicasso's tutorial #139

Kakadu opened this issue Aug 10, 2021 · 0 comments

Comments

@Kakadu
Copy link
Collaborator

Kakadu commented Aug 10, 2021

List of subtasks copy-pasted from YueLiPicasso/OCanrenTutorial#2

Group S: Problems that have straightforward fix or cause disputes on trivial matters (S for straight)

  • spell errors
  • text formatting (such as adding newlines and indentation)
  • removal of double semi-colons ( ;; ) at end of OCaml code lines
  • Alternative commands for the install/uninstall of OCanren.
  • Write in infix or prefix style, for infix operators ?
  • change of jargon: groundi -> injected
  • two versions of build system
  • favor of explict lambda abstraction in function definition

Group M: Moderate technical clarifications (M for moderate)

  • How to briefly introduce GT? Shall we say that "it provides a Haskell type class style feature to OCaml" or we could say something better?
  • Clarify that we do not allow infinite programs, but the programs we write may be viewed as being infinite in theory.
  • Description of simple concepts like "stream" in complex/advanced ways could be kept, but a more intuitive explanation can also be added.
  • The term "zip" has many meanings, but that adopted in the tutorial is clarified by an example. A deterministic and implementation oriented definition of zipping is good to be added.
  • GT.string vs. string to be clarified
  • The notion of guarded type may be not useful for some people, but I found it illuminating, so I choose to keep it.
  • When does a ground type coincide with its corresponding (fully) abstract type? This may worth some more discussion.
  • The comments on the use of -rectypes compiler option serve to explain why we need that flag.
  • Explain the two type parameters of the "injected" type constructor could be added.
  • Clarify that there are a few syntaxes for OCanren and we are using one of them.

Group P: Philosophical questions

  • Shall the author focus the tutorial on the major implementation technique of OCanren and the ideas
    of relational programming, which he is better at, or he should do what he is not good at and update the tutorial very often to explain how to install the latest version of OCanren where there is no fundamental change in its concepts and implementation?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant