Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
fp:lab01 [2022/02/14 15:53]
pdmatei
fp:lab01 [2022/02/24 11:47] (current)
pdmatei
Line 13: Line 13:
   * alternatively,​ you can use [[https://​www.sublimetext.com/​download | Sublime]], which is a simpler (faster) editor. You can add syntax highlighting plugins for Scala (see: [[https://​scalameta.org/​metals/​docs/​editors/​sublime/​ | scalameta ]]), as well as worksheet/​REPL support (see: [[https://​packagecontrol.io/​packages/​SublimeREPL | SublimeREPL]]).   * alternatively,​ you can use [[https://​www.sublimetext.com/​download | Sublime]], which is a simpler (faster) editor. You can add syntax highlighting plugins for Scala (see: [[https://​scalameta.org/​metals/​docs/​editors/​sublime/​ | scalameta ]]), as well as worksheet/​REPL support (see: [[https://​packagecontrol.io/​packages/​SublimeREPL | SublimeREPL]]).
  
-===== Online exercises ===== 
  
-Consider the following code: 
-<code scala> 
-def fact(n: Integer): Integer = 
-  if (n == 1) 1 
-  else n*fact(n-1) 
-</​code>​ 
  
-The function ''​fact''​ is not tail recursive and will quickly fill the call stack. Starting from the code stub below, implement a tail-recursive factorial: 
-<code scala> 
-def fact (n: Integer): Integer = { 
-   def aux_fact(n: Integer, acc: Integer): Integer =  
-       if (???) acc 
-       else ??? 
-   ​aux_fact(n,​1) 
-} 
-</​code>​ 
  
  
- 
- 
- 
-===== Homework - Newton'​s Square Root method ===== 
- 
-  * Video (Newton'​s Square Root solution) 
- 
-A very fast way to numerically compute $math[sqrt{2}],​ is using Newton'​s Square Root approximation:​ 
-  * Start with $math[x_0 = 1]. 
-  * Compute $math[x_n = \displaystyle\frac{1}{2}\displaystyle\(x_n+\frac{1}{x_n})]