- 1
- 2
_G = setmetatable(_G, {__newindex = function(t,k,v) t[k] = "sG_nil" end})
pitux=1
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
_G = setmetatable(_G, {__newindex = function(t,k,v) t[k] = "sG_nil" end})
pitux=1
чо поцоны, изи рекурсия.
+2
#include <stdio.h>
#include <stdlib.h>
#include <stdalign.h>
#include <inttypes.h>
#include <string.h>
float sum_f(const float arr[], const size_t len);
int32_t sum_i32t(const int32_t arr[], const size_t len);
#define sum(a, b) _Generic((a), float*: sum_f, \
const float*: sum_f, \
int32_t*: sum_i32t,\
const int32_t*: sum_i32t)(a, b)
// foldl (+) 0 arr
float sum_f(const float arr[], const size_t len)
{
return (len != 0) ? ( sum(arr+1, len-1) + arr[0] ) : 0;
}
int32_t sum_i32t(const int32_t arr[], const size_t len)
{
return (len != 0) ? ( sum(arr+1, len-1) + arr[0] ) : 0;
}
enum { we_want_int, we_want_float } what_we_want;
void test(int www)
{
void *a;
if (www == we_want_int)
{
uint8_t buf[sizeof(int32_t[10])] __attribute__ ((aligned (alignof(int32_t[10]))));
a = (void *) buf;
memcpy ( a, (int32_t[10]){1,2,3,4,5,6,7,8,9,10},
sizeof((int32_t[10]){1,2,3,4,5,6,7,8,9,10})
);
printf("%" PRIi32 "\n", sum((int32_t *)a, 10));
}
else if (www == we_want_float)
{
uint8_t buf[sizeof(float[10])] __attribute__ ((aligned (alignof(float[10]))));
a = (void *) buf;
memcpy ( a, (float[10]){1,2,3,4,5,6,7,8,9,10},
sizeof((float[10]){1,2,3,4,5,6,7,8,9,10})
);
printf("%f\n", sum((float *)a, 10));
}
}
int main(void)
{
test(we_want_int);
test(we_want_float);
return EXIT_SUCCESS;
}
https://wandbox.org/permlink/TwbKHE8l7ZJc6PNI
https://govnokod.ru/25005#comment436646
https://i.imgur.com/yFYfuED.jpg
0
/*
https://habr.com/post/246009/
Это вторая статья в цикле «Теория категорий для программистов».
...
Я хотел бы сказать вам, что есть шаблон в стандартной библиотеке С++,
который принимает две функции и возвращает их композицию, но такого
нет.
Примечание переводчика: но такой не сложно написать на С++14 (я опускаю
тонны деталей владения и шаблонной магии для проверок, что эти функции
и тип аргумента действительно можно компоновать):
*/
template <typename T>
struct function_arg: public function_arg<decltype(&T::operator())> {};
template<typename ReturnType, typename Arg>
struct function_arg<ReturnType(Arg) const> {
using type = Arg;
};
template<typename ClassType, typename ReturnType, typename Arg>
struct function_arg<ReturnType(ClassType::*)(Arg) const> {
using type = Arg;
};
template<typename T>
using function_arg_t = typename function_arg<T>::type;
template<typename F, typename G>
auto compose(F&& f, G&& g) {
return [f = std::forward<F>(f), g = std::forward<G>(g)]
(function_arg_t<F>&& a) {return g(f(std::forward<function_arg_t<F>>(a)));};
}
Поэтому я за C++
0
#include <iostream>
#include <tuple>
using namespace std;
int main() {
int a = 5, b = 6;
tie(a, b) = make_pair(b, a);
cout << a << " " << b << endl;
return 0;
}
https://ideone.com/9gzogv
+1
Что-то я давно не обсирал тут хуиту, которую пишут про
плюсы на хабре
https://habr.com/post/426965/
Идеального способа для обработки ошибок не существует.
До недавнего времени в С++ были почти все возможные
способы обработки ошибок кроме монад.
В этой замечательной статье забыли упомянуть setjmp/longjmp(std::longjmp если угодно), который хоть и из Си, но в C++ его никто не запрещал.
А еще signal (std::signal, если угодно), который хоть и из Си, но в C++ его никто не запрещал.
А еще goto (почему нет std::goto? Запилите быстраблядь!), который хоть и из Си, но в C++ его никто не запрещал.
А вообще, зачем иметь в языке такое количество говна в СТАНДАРТНОЙ БИБЛИОТЕКЕ для такой хуиты?
Вот еще в тему: https://video.twimg.com/tweet_video/De78Qn2XcAAQqfS.mp4
+1
/* Сортировка начало */
if (Yii::$app->request->get('sort_number') && strlen(Yii::$app->request->get('sort_number')) === 4) {
$model->orderBy([
'number' => SORT_DESC,
]);
} else {
if (Yii::$app->request->get('sort_number') && strlen(Yii::$app->request->get('sort_number')) === 5) {
$model->orderBy([
'number' => SORT_ASC,
]);
}
}
if (Yii::$app->request->get('sort_domain_name') && strlen(Yii::$app->request->get('sort_domain_name')) === 4) {
$model->orderBy([
$company_name => SORT_DESC,
]);
} else {
if (Yii::$app->request->get('sort_domain_name') && strlen(Yii::$app->request->get('sort_domain_name')) === 5) {
$model->orderBy([
$company_name => SORT_ASC,
]);
}
}
if (Yii::$app->request->get('sort_domain_id') && strlen(Yii::$app->request->get('sort_domain_id')) === 4) {
$model->orderBy([
'domain_id' => SORT_DESC,
]);
} else {
if (Yii::$app->request->get('sort_domain_id') && strlen(Yii::$app->request->get('sort_domain_id')) === 5) {
$model->orderBy([
'domain_id' => SORT_ASC,
]);
}
}
if (Yii::$app->request->get('sort_id') && strlen(Yii::$app->request->get('sort_id')) === 4) {
$model->orderBy([
'id' => SORT_DESC,
]);
} else {
if (Yii::$app->request->get('sort_id') && strlen(Yii::$app->request->get('sort_id')) === 5) {
$model->orderBy([
'id' => SORT_ASC,
]);
}
}
/* Сортировка конец */
/* Поиск начало */
if (Yii::$app->request->get('id') && strlen(Yii::$app->request->get('id')) >= 1) {
$model->andWhere([
'id' => Yii::$app->request->get('id'),
]);
}
if (Yii::$app->request->get('number') && strlen(Yii::$app->request->get('number')) >= 3) {
$model->andWhere(['number' => Yii::$app->request->get('number'),
]);
}
if (Yii::$app->request->get('domain_name') && strlen(Yii::$app->request->get('domain_name')) >= 3) {
$model->andWhere([$company_name => Yii::$app->request->get('domain_name'),
]);
}
if (Yii::$app->request->get('domain_id') && strlen(Yii::$app->request->get('domain_id')) >= 3) {
$model->andWhere(['domain_id' => Yii::$app->request->get('domain_id'),
]);
}
if (Yii::$app->request->get('appointment') && strlen(Yii::$app->request->get('appointment')) >= 3) {
$model->andWhere(['appointment' => Yii::$app->request->get('appointment'),
]);
}
/* Поиск конец */
Джуна отправили в свободное плавание... как вам?
0
GET
+1
public class TransactionRequestViewModel
{
public string X_login { get; set; }
public double X_amount { get; set; }
public int X_fp_sequence { get; set; }
public int X_fp_timestamp { get; set; }
public string X_fp_hash { get; set; }
public string X_show_form { get; set; }
public string X_receipt_link_method { get; set; }
public string X_receipt_link_text { get; set; }
public string X_receipt_link_url { get; set; }
public string X_currency_code { get; set; }
public string X_line_item { get; set; }
}
Этот "Х" добавляет +80 к читаемости.
+2
<?php
define('+1', 16384);
${'*.'} = function ($a, $b) {
return floor($a * $b / constant('+1'));
};
${'/.'} = function ($a, $b) {
return floor($a * constant('+1') / $b);
};
echo ${'/.'}(1, 1) . "\n";
echo ${'/.'}(1, 2) . "\n";
echo ${'/.'}(7, 34) + ${'/.'}(23, 99) . "\n";
Где-то за кулисами прячется факт, что в "PHP" в качестве имён констант и переменных можно использовать произвольные строки.
https://ideone.com/3MCnCW
+1
public function index(Request $request)
{
$user = User::find(Auth::user()->id);
if($request->method() == 'POST') {
$user->username = $request->post('username');
$user->email = $request->post('email');
$user->save();
return redirect()->to(route('account.settings'));
}
return view('Account::settings.index', ['user' => $user]);
}