Could you develop on the usage of integer frequencies?
When dealing with sampled discrete signals, there can only be an integer amount of resolvable frequencies within a captured interval.
When you take an $x(t), t \in \mathbb{R}$ and apply sample-and-hold on it at some sampling frequency $Fs$, it is turned into an $x \left[n \cdot \frac{1}{Fs} \right ], n \in \mathbb{N}$.
Theoretically, when $t \in \mathbb{R}$, you can "interrogate" any time instance or interval of $x$. But after sampling, when $n \in \mathbb{N}$, the smallest interval you can interrogate from your signal is $\frac{1}{Fs}$ or between successive samples $n, n+1$.
Even if you tried to sample faster after the sample-and-hold, the value you would get would be the last known value from the last time the sampling took place.
Therefore, within a block of $N$ samples, you get $N$ resolvable frequencies. Even if you tried to evaluate the Discrete Fourier Transform in more than the available $N$ frequencies, all that you would get would be interpolated values between the $N$ resolvable bins of it.
Which brings us to what Stanley Pawlukiewicz remarks: The fact that $n$ is integer, does not mean that you can only represent integer frequencies. Only that you can represent a fixed amount of them.
Just as you can only "see" $n$ and then $n+1$ discrete time instances of $x$, so you can only resolve some $f, f+ \frac{Fs}{N}$ discrete frequencies within it, where $N$ is the amount of samples you have collected.
...possibly relate it to the DCT where it seems to me that, e.g. the second basis vector is like half a cycle (as shown on my plot), and half a cycle is like a fractional frequency?
I hope that it is clear from the above discussion that "...half a cycle..." can well be N samples of some $f$ sampled at the right $Fs$ (?).
Hope this helps.