150PLD-Fall2019 / Reading

3 stars 0 forks source link

Special Topic: Advanced Functional Programming #299

Closed ChrisEPhifer closed 4 years ago

ChrisEPhifer commented 4 years ago

I'd like to talk about dependent types during our Advanced FP special topics day.

mpahrens commented 4 years ago

For Monday, would you please prepare a 1 page (shorter the better) summary of what you understand of dependent types.

I suggest this as a starting resource: http://dev.stephendiehl.com/hask/#data-kinds and possibly: http://dev.stephendiehl.com/hask/#idris

please include 2 examples: One which shows the typical usage from end to end Another which has a piece missing that the group you will lead could try to fill in as an activity.

As you prepare this, note what questions you have. If you are able to answer them, consider having them as guiding questions for the group.

Let me know what more specific instructions you need, and you can send me anything to proof read.

mpahrens commented 4 years ago

@uwaces What subtopic did you volunteer for?

ChrisEPhifer commented 4 years ago

Both of the resources you linked to are dead, @mpahrens. I get a PR_END_OF_FILE_ERROR. I have some other places to look, though, since I've poked at this topic before :)

ChrisEPhifer commented 4 years ago

Here's my summary and the examples I plan on going through during class: https://docs.google.com/document/d/1-Hlzkj0Ryu9cBxARYO92M5OvJ43QFshAT7DfwccZ94k/edit?usp=sharing

I'll also write all the relevant code for each and share the repository with you; the summary as it stands says very little about the nitty-gritty of doing these things with Haskell and the unholy combination of language extensions that are necessary, and I believe showing code will be more productive.

ChrisEPhifer commented 4 years ago

I've sent you a collaboration invite to my repo @mpahrens; it has solutions to both of my examples, so I didn't want it to be public for the time being. After class on Monday I'll open it up to the public and share the link on the Reading wiki.

mpahrens commented 4 years ago

@ChrisEPhifer Your demo project looks good and I agree with your summary. I want to change up the flow of the class slightly, to make more sense in this setting. Let me know how this sounds to you:

Thoughts? I think taking a relaxed approach to this is just fine. If you would do me the favor of having at least 10 print outs of your small group activity, it would make my life a ton easier. Otherwise, we can play it by ear since most people bring in laptops.

P.S. Also, those links work for me. this is the second time links work for me but not for you. I am confuse, but you look like you are all set regardless. Sorry for the inconvenience!

uwaces commented 4 years ago

Lenses: https://github.com/uwaces/intro_to_lenses

mpahrens commented 4 years ago

@uwaces @ChrisEPhifer Does this seem like a good plan to you two: https://www.cs.tufts.edu/comp/150PLD/ic22.html Do you need anything else from me?

uwaces commented 4 years ago

Yes, this sounds good. My thought was that in the group of people we work through the code in pairs.

Does that sound okay you?

ChrisEPhifer commented 4 years ago

Looks good @mpahrens! Since my activity is so short, if people want to do it on paper I can just give them the skeleton real quick (I'm just having them do a type implementation rather than functions on that type.)

mpahrens commented 4 years ago

Yep, however you want to lead your small groups works fine for me! both of those sound fine. And now, since it is the 3 of us, it will be 4~6 people per group at most.