## Primality-testing function

The following 28-byte function returns `true` for prime numbers and `false` for non-primes:

    f=(n,x=n)=>n%--x?f(n,x):x==1

This can easily be modified to calculate other things. For example, this 41-byte function counts the number of primes less than or equal to a number:

    f=(n,x=n)=>n?n%--x?f(n,x):(x==1)+f(n-1):0

### How it works

    f = (         // Define a function f with these arguments:
      n,          //   n, the number to test;
      x = n       //   x, with a default value of n, the number to check for divisibility by.
    ) =>
      n % --x ?   //   If n is not divisible by x - 1,
      f(n, x)     //     return the result of f(n, x - 1).
                  //   This loops down through all numbers between n and 0,
                  //     stopping when it finds a number that divides n.
      : x == 1    //   Return x == 1; for primes only, 1 is the smallest number
                  //     less than n that divides n.
                  //   For 1, x == 0; for 0, x == -1.

Note: This will fail with a "too much recursion" error when called with a sufficiently large input, such as 12345.