# CommonEdge Interview with Tiago
### If you could program in any language, what would it be?
C++ - it's behind everything
### Why doesn't 0.4 + 0.8 == 1.2? (in javascript, Java, PHP, C, etc.)
### Fix the bugs in this function to count reachable nodes in a directed graph.
```php
class Node {
public $value; // assuming unique values
public $children;
// count how many nodes are reachable from this node including this node
public countNodes($seen=[]) {
$n = 0;
if(!$seen[$this->value]){
$seen[$this->value] = $this;
$n = 1;
}
foreach($this->children as $child)
{
if(!$seen[$child->value])
$n += $child->countNodes(&$seen);
}
return $n;
}
}
```
### Given an array of numbers, return the second greatest number without using sort.
```php
max = 0
second = 0
foreach ($numbers as $k => $v){
if(v >= max)
second = max
max = v
else if (v > second)
second = v
}
```
### What is this function?
```typescript=
const somemysteryfunction = <A,B>(f: (x: A) => B, xs: A[]): B[] => // ...
const blah = (x: Opening): Surface => // ...
const foo = (x: Surface): Panels[] => // ...
const bar = (x: Opening): Panels[] => foo(bar(s));
{
const s: Surface = blah(x);
const ps: Panels[] = foo(s);
return ps;
}
const compose = <A,B,C>(f: (x: B) => C, g: (y: A) => B) => (y: A): C => f(g(y));
bar = compose(foo, blah);
```