Giter Club home page Giter Club logo

tutorials's Introduction

MI-AFP tutorials

License: CC BY-SA 4.0 DOI

Materials of MI-AFP (Applied Functional Programming) course tutorials

Content

This repository contains tutorials and related stuff. Homeworks and other projects can be found in other repositories of MI-AFP organization.

Acknowledgements

Our work is highly inspired by successful course MI-PYT (Advanced Python). The materials have been developed with support of the Faculty of Information Technology, CTU in Prague.

FIT CTU

Contribution

If you find a problem or you have ideas about improvements, please submit new issue or do the changes on your own and create a pull request. This is open course and we appreciate any help and feedback!

License

This project is licensed under the Creative Commons Public License CC BY-SA 4.0 - see the LICENSE file for more details.

tutorials's People

Contributors

denynemec avatar johnondrej avatar mareksuchanek avatar roper79 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

tutorials's Issues

B172 typos, errors, and enhancements

B172 Errata + additions

Mistakes of B172 materials to be fixed

01

02

03

04

  • Last example in ByteString section is missing start with Prelude T B C E> (maybe also imports)
  • Double colon in the second paragraph of OverloadedStrings
  • In OverloadedStrings, code from GHCi is with Haskell syntax highlighting (and should not)
  • Hayoo link is missing (just [Hayoo] is there)

05

  • Currying, second paragraph "curyying"
  • mkPolygon switch PSize and NoVertices in type signature
  • generalSort type change to Ord a => a and fix return array
  • anonymous functions syntactic sugar and usage
  • check all examples explaining folds
  • (><), parametre (#11)
  • (5 `foo` 3) 12 result (comment bellow by @klememi)

06

07

08

09

10

Update tutorials and improve second half of the semester

Tutorials 6 - 12 should be improved, some can be merged and substituted by Elm (#23) as another way of functional programming - frontend oriented. It may require also a change in tutorials 3, 4, and 5.

Plan

  • Tutorial 1 - just go through and update
  • Tutorial 2 - just go through and update
  • Tutorial 3 - text types (as evaluation is already there)
  • Tutorial 4 - more information about advanced function
  • Tutorial 5 - basic typeclasses and also start of IO monad, error handling
  • Tutorial 6 - also performance, profiling and debugging
  • Tutorial 7 - advanced typeclasses and transformers
  • Tutorial 8 - webapp
  • Tutorials 9, 10, 11 - Elm #23 (12 can be partly Elm - "follow ups and interesting FP stuff")

Small mistake in tutorials/02

In the tutorial 02_functions-types.md

factorial n = fac' n 1 
            where fac' 0 acc = acc
                  fac' x acc = fac' (x - 1) (x * acc) 
  1. factorial 3
  2. fac' 3 1
  3. fac' 2 3
  4. fac' 1 6
  5. fac' 1 6
  6. 6

step 5. should be fac' 0 6 if I got it right.

Update homeworks

We need to change homeworks for next semester. If the tutorial is as last year, just change it (same principles, different tasks). If there is change in tutorial (mainly in the second half of semester #25 and #23), create totally new task in the repository.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.