---
# System prepended metadata

title: CommonEdge Interview with Tigran

---

# CommonEdge Interview with Tigran

### If you could program in any language, what would it be?
Javascript

### 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;
    public $children; // Node[]
    
    // count how many nodes are reachable from this node including this node
    public countNodes($seen=[]) {
        $n = 1;
        foreach ($seen as $object) {
            if ($object == $this) {
                return 0;
            }
        }    
        $seen[] = $this;
        foreach($this->children as $child) {
            $n += $child->countNodes(&$seen);
        }
        return $n;
    }
}
```

### Given an array of numbers, return the second greatest number without using sort.

```php=

$array = [1,2,3];
function getSecondGreatest($array) {
    $max = 0; 
    $secondMax = 0;
    foreach ($array as $key => $value) {
        if($value > $max) {
            if($max > $secondMax){
                $secondMax = $max;
            } 
            $max = $value;
        }elseif($value > $secondMax){
            $secondMax = $value;
        }
    }        
    return $secondMax;

}
getSecondMax($array);
```

### What is this function?

```typescript=
const somemysteryfunction = <A,B>(f: (x: A) => B, xs: A[]): B[] => // ...
