«This International Standard is divided into four major subdivisions:
— preliminary elements (clauses 1−4);
— the characteristics of environments that translate and execute C programs (clause 5);
— the language syntax, constraints, and semantics (clause 6);
— the library facilities (clause 7)».
«Annexes provide additional information and summarize the information
contained in this International Standard».
Это заметно. Нет привычки писать код правильно - считай говнокодер. Профессионал даже в демонстрационных целях будет заботится о своей репутации. Ну это, конечно, моё мнение.
import Language.C.Quote.CUDA
...
summation :: Type -> Int -> Func
summation typeOut n =
[cfun|
static __global__ int $id:("k_" : name)
(
$ty:psi* p1,
int N1,
$ty:psi* p2,
int N3,
$ty:psi* result
)
{
int i = threadIdx.x + blockIdx.x*blockSize.x;
$stm:(acc [cstm| result[i] |])
}
|]
where
name = printf "summ%d" n
acc a = nestedLoop (partial a) iterators 4
iterators = map (:"_") ['i'..'k']
...
Тут ещё, как в анекдоте. В крутой кабак заходит мужик и говорит бармену: - Мне 100 грамм водки. Бармен наливает, подает. Мужик достает из кармана мензурку и удостоверение: - Контрольная закупка. 75 грамм! Штраф $50. Следующий вечер. Те же лица. Мужик снова измеряет мензуркой и снимает полтинник штрафа. Потом спрашивает бармена: - Слушай, ты же меня узнал, почему все равно недолил? - Да мне проще полтинник отдать, чем руку сбивать из-за тебя...
Если рука набита, корявые пробелы и нелепо отформатированный код просто невозможны, да и время на оформление кода практически не тратится, т.к делается на автомате. Ну это всё равно что говорить, что мол ашипки ф тексти, зделоны тк я торопился посоны, проста некагда была правильна песать.
Какие забавные обезьянки. В то время, как нормальные люди учатся
писать максимально понятно и лаконично, некоторые учатся героически преодолевать трудности, которые сами же себе и создают.