<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="https://ocw.cs.pub.ro/ppcarte/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://ocw.cs.pub.ro/ppcarte/feed.php">
        <title>books pp:2026:scala</title>
        <description></description>
        <link>https://ocw.cs.pub.ro/ppcarte/</link>
        <image rdf:resource="https://ocw.cs.pub.ro/ppcarte/lib/tpl/bootstrap3/images/favicon.ico" />
       <dc:date>2026-04-16T04:41:35+03:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l01&amp;rev=1771933431&amp;do=diff"/>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l02&amp;rev=1772795372&amp;do=diff"/>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l03&amp;rev=1774503028&amp;do=diff"/>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l04&amp;rev=1773864879&amp;do=diff"/>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l05&amp;rev=1774624538&amp;do=diff"/>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l06&amp;rev=1775483824&amp;do=diff"/>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l07&amp;rev=1776271154&amp;do=diff"/>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:t01&amp;rev=1775246502&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://ocw.cs.pub.ro/ppcarte/lib/tpl/bootstrap3/images/favicon.ico">
        <title>books</title>
        <link>https://ocw.cs.pub.ro/ppcarte/</link>
        <url>https://ocw.cs.pub.ro/ppcarte/lib/tpl/bootstrap3/images/favicon.ico</url>
    </image>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l01&amp;rev=1771933431&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-24T13:43:51+03:00</dc:date>
        <title>pp:2026:scala:l01</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l01&amp;rev=1771933431&amp;do=diff</link>
        <description>Lab 1. Introduction to Scala

 Objectives: 

	*  get yourself familiar with Scala syntax basics
	*  practice writing tail-recursive functions as an alternative to imperative loops 
	*  keep your code clean and well-structured.

 Create a new Scala worksheet to write your solutions $ n$$ 1 + 2^2 + 3^2 + \ldots + (n-1)^2 + n^2$$ x$$ x_0, x_1, \ldots, x_n$$ (\ldots((x - x_0) - x_1) - \ldots x_n)$$ x$$ x_0, x_1, \ldots, x_n$$ x_0 - (x_1 - \ldots - (x_n - x)\ldots)$$ \sqrt{a}$$ x_0 = 1$$ x_{n+1} = \d…</description>
    </item>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l02&amp;rev=1772795372&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-06T13:09:32+03:00</dc:date>
        <title>pp:2026:scala:l02</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l02&amp;rev=1772795372&amp;do=diff</link>
        <description>Lab 2. Higher order functions

Objectives:

	*  implement and use higher-order functions. A higher-order function takes other functions as arguments or returns a function as its result.
	*  implement curry and uncurry functions, and how they should be properly used (review lecture).$ x_1, x_2, x_3$$ +$$ x_1 + (x_2 + (x_3 + acc))$$ a_1, a_2, \ldots, a_k$$ f(a_1)\;op\;f(a_2)\;op\;\ldots f(a_k)$$ f(x) = a*x + b$$ \Delta y$$ \Delta x$</description>
    </item>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l03&amp;rev=1774503028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-26T07:30:28+03:00</dc:date>
        <title>pp:2026:scala:l03</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l03&amp;rev=1774503028&amp;do=diff</link>
        <description>Lab 3. Algebraic Datatype Definition

3.1 Abstract Lists

Below, you will find the algebraic definition of the datatype IList:


Void : IList
Cons : Int x IList -&gt; IList


This definition has already been implemented in Scala, as shown below. Please copy-paste this definition in your worksheet.</description>
    </item>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l04&amp;rev=1773864879&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-18T22:14:39+03:00</dc:date>
        <title>pp:2026:scala:l04</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l04&amp;rev=1773864879&amp;do=diff</link>
        <description>Lab 4. Lists in Scala

Objectives:

	*  get familiar with pattern matching lists, as well as common list operations from Scala and how they work
	*  get familiar with common higher-order functions over lists (partition, map, foldRight, foldLeft, filter)</description>
    </item>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l05&amp;rev=1774624538&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-27T17:15:38+03:00</dc:date>
        <title>pp:2026:scala:l05</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l05&amp;rev=1774624538&amp;do=diff</link>
        <description>Lab 5. Data types in Scala

Objectives:

	*  get familiar with algebraic data types
	*  get familiar with pattern matching and recursion with them

5.1 Natural Numbers

Given the following implementation of the natural numbers, solve the next few exercises.$  \displaystyle \left(\begin{array}{ccc} 1 &amp; 2 &amp; 3 \\ 4 &amp; 5 &amp; 6 \\ 7 &amp; 8 &amp; 9 \\ \end{array}\right)$$  \displaystyle 2 * \left(\begin{array}{ccc} 1 &amp; 2 &amp; 3 \\ 4 &amp; 5 &amp; 6 \\ 7 &amp; 8 &amp; 9 \\ \end{array}\right) = \left(\begin{array}{ccc} 2 &amp; 4 &amp; 6 \\…</description>
    </item>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l06&amp;rev=1775483824&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-06T16:57:04+03:00</dc:date>
        <title>pp:2026:scala:l06</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l06&amp;rev=1775483824&amp;do=diff</link>
        <description>Lab 6. For expressions

Objectives:

	*  get familiar with String functions: length, substring, concat, replace
	*  get familiar with for expressions in Scala

6.1 A small string DSL
“”
In this section we will extend the scala String class with several operators that implement useful string functions, effectively obtaining a small string-specialized</description>
    </item>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l07&amp;rev=1776271154&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-15T19:39:14+03:00</dc:date>
        <title>pp:2026:scala:l07</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:l07&amp;rev=1776271154&amp;do=diff</link>
        <description>Lab 7. Lambda Calculus

7.0. What? Why?

Lambda Calculus is a universal model of computation (can be used to simulate any Turing Machine) based on function abstraction and application. It has a very simple semantic that can be used to study properties of $ \lambda f.\lambda x.(f \ x) $$ x $$ x \in VARS $$ \lambda x.e $$ x \in VARS $$ e $$ \lambda $$ (e_1 \ e_2) $$ e_1, e_2 $$ \lambda $$\lambda$$ \lambda x.e $$(\lambda x.body \ param)$$ body[x \ / \ param] $$ E_1 = (\lambda x.e_1 \ e_2) $$ E_2 = …</description>
    </item>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:t01&amp;rev=1775246502&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-03T23:01:42+03:00</dc:date>
        <title>pp:2026:scala:t01</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2026:scala:t01&amp;rev=1775246502&amp;do=diff</link>
        <description>Tema 1 PP – Casa de marcat

Publicare: 25 martie 2026

Deadline: 17 aprilie 2026

Schelet de cod:  (actualizat 30 martie, 20:13)

Punctajul maxim este de 200 de puncte. Acesta este impartit astfel (puteti vedea in fisierele de test cat valoreaza fiecare test):$ C = \left(10 - \left( \sum_{i=1}^{12} w_i \cdot c_i \right) \mod 10 \right) \mod 10$$ w_i$$ i$$ c_i$$ i$$ \text{frecvență relativă}=\dfrac{\text{număr apariții}}{\text{număr total de elemente}}$</description>
    </item>
</rdf:RDF>
