# It's a Slippery Slope

## Jelly, 23 bytes

```
Ṛ⁹,2⁶v$Ṡ$e⁵$?¥þị“/ \-”Y
```

Try it online!

Arguments: `Y`

, `X`

, `U`

, `f`

`f`

is a Python string containing Jelly code. **Be sure to quote it appropriately**, otherwise you may encounter errors.

Also, ** f takes a pair [x, y] as its argument, not two arguments x and y**.

## APL (Dyalog), ~~36~~ 34 bytes

*2 bytes saved thanks to @ngn*

```
{o←⍺⍺⋄'\-/ '[⊖⍉⍺∘.{0::4⋄2+×⍺o⍵}⍵]}
```

Try it online! _{(with modified division, since basic APL 0÷0 is 1)}

The black box function comes as left operand, `X`

as left argument, and `Y`

as right argument.

## Haskell, ~~114~~ ~~113~~ 109 bytes

```
z x=last$0:[x|abs x>1e-9]
(x#y)(%)u=reverse[[last$"\\-/"!!floor(1+signum(z$c%r)):[' '|elem(c,r)u]|c<-x]|r<-y]
```

Try it online!

Fairly straightforward solution. Uses `signum`

to index into a string for the right char if the point is defined.

EDIT: Thought of a way to shave off a byte

EDIT 2: Thanks @Laikoni for taking off another 4 bytes!