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

Add 'class/structure' concept & exercise #517

Open
fu7mu4 opened this issue Sep 19, 2021 · 4 comments
Open

Add 'class/structure' concept & exercise #517

fu7mu4 opened this issue Sep 19, 2021 · 4 comments
Labels
x:action/create Work on something from scratch x:knowledge/elementary Little Exercism knowledge required x:module/concept Work on Concepts x:module/concept-exercise Work on Concept Exercises x:size/large Large amount of work

Comments

@fu7mu4
Copy link
Contributor

fu7mu4 commented Sep 19, 2021

In https://exercism.org/tracks/common-lisp/about, the section "Key Feature of Common Lisp" says that Common Lisp can be written in 'object-oriented' style. So I think that users expect such concept related about object-oriented feature.

@verdammelt
Copy link
Member

Definately a good idea - I think structures and classes probably should be handled separately.

I also wonder if even 'class' is too big of a concept? What is the minimal set of things we want to teach about classes or structures?

@fu7mu4
Copy link
Contributor Author

fu7mu4 commented Sep 19, 2021

In my opinion,

  • generic function
  • method
  • method combination
  • multiple method
  • class definition
  • slot
  • instance
  • accessor
  • inheritance
  • multiple inheritance

@verdammelt
Copy link
Member

That is a lot of stuff for a 'concept' exercise. Should we expose the student first to generic functions then classes or visa versa? (maybe the latter...) then method combinations, inheritance (including multiple) could be taught next.

The goal of concept exercises is to be small and focused, should teach the student "one" thing.

For reference:

@verdammelt verdammelt added x:action/create Work on something from scratch x:knowledge/elementary Little Exercism knowledge required x:module/concept Work on Concepts x:module/concept-exercise Work on Concept Exercises x:size/large Large amount of work labels Sep 26, 2021
@verdammelt
Copy link
Member

I think we'll need to split this idea into several parts... Perhaps a partitioning of:

  • classes
  • generic functions
  • structures

These should be kept relatively simple and later more advanced concepts could get into things like say... method combinations, specializating on initialize-instance etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
x:action/create Work on something from scratch x:knowledge/elementary Little Exercism knowledge required x:module/concept Work on Concepts x:module/concept-exercise Work on Concept Exercises x:size/large Large amount of work
Projects
None yet
Development

No branches or pull requests

2 participants