Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
project-3-draft [2021/04/22 12:20] pdmatei |
project-3-draft [2021/04/25 16:07] (current) roxana_elena.stiuca prerequisite for taskset3 |
||
|---|---|---|---|
| Line 26: | Line 26: | ||
| | Cartesian (Row -> Row -> Row) [String] Query Query | | Cartesian (Row -> Row -> Row) [String] Query Query | ||
| | Projection [String] Query | | Projection [String] Query | ||
| - | -- | forall a. Filter (FilterCondition a) Query | + | | forall a. FEval a => Filter (FilterCondition a) Query |
| - | | Graph EdgeOp query | + | | Graph EdgeOp Query |
| | | ||
| -- where EdgeOp is defined: | -- where EdgeOp is defined: | ||
| Line 34: | Line 34: | ||
| **Don't worry about Graph or Filter queries yet.** | **Don't worry about Graph or Filter queries yet.** | ||
| - | + | ==== Prerequisite ==== | |
| + | Add the following lines at the beginning of your .hs files: | ||
| + | <code haskell> | ||
| + | {-# LANGUAGE ExistentialQuantification #-} | ||
| + | {-# LANGUAGE FlexibleInstances #-} | ||
| + | </code> | ||
| + | |||
| + | The first line allows ''forall a''. | ||
| + | The second allows ''instance FEval String''. | ||
| ===== Query Evaluation ===== | ===== Query Evaluation ===== | ||
| Line 159: | Line 168: | ||
| From To Value | From To Value | ||
| Mihai Stefan 321 | Mihai Stefan 321 | ||
| - | Andrei Ana 322 | + | Ana Andrei 322 |
| </code> | </code> | ||
| Line 165: | Line 174: | ||
| <code haskell> | <code haskell> | ||
| edgeop [_,x,_] [_,y,_] | edgeop [_,x,_] [_,y,_] | ||
| - | | abs $ x - y <= 1 = Just "similar" | + | | abs $ (read x :: Int) - (read y :: Int) <= 1 = Just "similar" |
| | otherwise = Nothing | | otherwise = Nothing | ||
| </code> | </code> | ||
| Line 172: | Line 181: | ||
| <code> | <code> | ||
| From To Value | From To Value | ||
| - | Mihai Andrei similar | + | Andrei Mihai similar |
| Mihai Stefan similar | Mihai Stefan similar | ||
| - | Mihai Ana similar | + | Ana Mihai similar |
| - | Andrei Ana similar | + | Ana Andrei similar |
| - | Stefan Ana similar | + | Ana Stefan similar |
| </code> | </code> | ||
| Line 188: | Line 197: | ||
| Your task is to write ''similarities_query'' as a **sequence of queries**, that once evaluated results in the graph described above. | Your task is to write ''similarities_query'' as a **sequence of queries**, that once evaluated results in the graph described above. | ||
| + | |||
| + | **Note**: ''similarities_query'' is a Query. The checker applies ''eval'' on it. | ||
| ===== TL;DR Tasks ===== | ===== TL;DR Tasks ===== | ||