Skip to content

jabrena/cis-194

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CIS-194

Solutions implemented in Java for: https://www.cis.upenn.edu/~cis1940/spring13/lectures.html

Homework Solutions

Homework Functional Concept Java Concept Applied Java Classes
Homework 1 Credit Card Validation & Tower of Hanoi - Pure functions, immutability, function composition, recursion Streams API, Function.andThen(), immutable collections (List.of()), records, method references Exercise1.java
Exercise2.java
Homework 2 Log Parsing & ADTs - Algebraic Data Types, pattern matching, sealed interfaces, binary trees Sealed interfaces, switch expressions, records, stream operations, trampoline pattern Exercise1.java
LogMessage.java
MessageType.java
+5 more
Homework 3 List Operations - Higher-order functions, list comprehensions, local maxima Generic methods, IntStream.iterate(), functional interfaces, stream operations Exercise1.java
Exercise2.java
Exercise3.java
Homework 4 Wholemeal Programming & Trees - Map, fold, function composition, tail recursion, binary trees Trampoline pattern, Stream.map(), curried functions, abstract classes, algebraic data types Exercise1.java
Exercise2.java
Exercise3.java
Tree.java
Homework 5 Type Classes & Polymorphism - Visitor pattern, type-safe evaluation, expression languages Visitor pattern, generics, functional interfaces, method references, polymorphism Exercise1.java
Exercise2.java
Exercise3.java
Homework 6 Lazy Evaluation - Infinite sequences, memoization, fibonacci Stream.iterate(), lazy evaluation with streams, records as immutable data Exercise1.java
Homework 7 Folds & Monoids - Efficient concatenation, tree structures, monoid laws Abstract classes, algebraic data types pattern, trampoline, BinaryOperator interface Exercise1.java
Exercise2.java
Homework 8 IO & Functors - File processing, error handling, employee data Optional for error handling, Files.readAllLines(), stream processing, records Exercise1.java
Homework 10 Applicative Functors - Parser combinators, functional composition, employee parsing Functional interfaces, Optional.flatMap(), method chaining, trampoline, complex parsing Exercise1.java
Exercise2.java
Homework 11 Monads - Maybe monad, list monad, Kleisli composition, monadic operations Abstract classes with generics, functional composition, monadic operations, sealed classes Exercise1.java
Homework 12 Monadic Parsing & Simulation - Risk game simulation, random generation, army management Records, enums, Random class, immutable value objects, stream aggregation, trampoline Exercise1.java
Exercise2.java

About

Solutions implemented in Java for: https://www.cis.upenn.edu/~cis1940/spring13/lectures.html

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages