- 1
- 2
- 3
- 4
data Fuuu = Fuuu
instance Eq Fuuu
main = print $ if Fuuu == Fuuu then "I dosen't seen this" else "and this"
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+119
data Fuuu = Fuuu
instance Eq Fuuu
main = print $ if Fuuu == Fuuu then "I dosen't seen this" else "and this"
Вот за что мне нравится сверх надежный высокоуровневый хаскель, так за то, что если забыл переопределить какой-то метод или оператор из класа типов (в нормальных языках это интерфейс или один из базовых класов) стандартной библиотеки языка или неподходящим образом от него отнаследовался, то мы получаем надежное поведение:
http://ideone.com/6faPct
результат: Ошибка выполнения время: 0.01s память: 3580 kB сигнал: -1
ввод: нет
вывод: нет
stderr:
prog: <<loop>>
+50
if(!$category = $this->EE->product_model->get_category_by_key($key)){
$this->EE->functions->redirect($this->EE->functions->create_url($this->EE->config->item('site_404')));
exit();
}
// Эти 4 строчки достают все продукт которые относятся к выбранной категории. Дальше веселее ..
// Build our variable data
$vars[0] = array(
'site_id' => $category[0]['site_id'],
'category_id' => $category[0]['category_id'],
'category_image' => $img,
'category_detail' => $category[0]['detail'],
'parent_id' => $category[0]['parent_id'],
'category_title' => $category[0]['title'],
'url_title' => $category[0]['url_title'],
'meta_title' => $category[0]['meta_title'],
'meta_keyword' => $category[0]['meta_keyword'],
'meta_descr' => $category[0]['meta_descr'],
'total_results' => count($category[0]["products"]),
'results' => $category[0]["products"],
'no_results' => array(),
'result_filter_set' => '',
'breadcrumb_parent_categories' => $breadcrumb_parent_categories,
'catalog_guest_flag' => $flag_catalog,
'catalog_price_visible' => $catalog_visible
);
// Filter the results
if(count($category[0]["products"]) != 0)
$vars = $this->_filter_results($vars,$key,true);
// А теперь count($vars['results']) == $this->EE->config->products_per_page;
// И самое веселое -
foreach($vars[0]['results'] as $rst){
$tmp = $this->_get_product($rst["product_id"]);
$results[] = $tmp[0];
}
$vars[0]['results'] = $results;
// Функция _get_product() получает все данные о продукте: отзывы, описание, цена, куча опций. Пара строчек оттуда:
if($product_id == ''){
// Get product by param or dynamically
$product_id = $this->EE->TMPL->fetch_param('product_id');
$url_title = $this->EE->TMPL->fetch_param('url_title');
if($product_id != ''){
$products = $this->EE->product_model->get_products($product_id);
}else{
// get by url key
$key = ($url_title == '') ? $this->EE->uri->segment(2) : $url_title;
if(!$products = $this->EE->product_model->get_product_by_key($key)){
// Not a product page
return false;
}
}
}else{
if(!$products = $this->EE->product_model->get_products($product_id)){
return false;
}
}
// Очень интересен вызов функции get_products(), эта ф-ция вызывается и для продуктов в каталоге и на странице продукта.
// Каждый вызов тянет за собой 25 запросов в базу, если на странице 40 продуктов * 25 = 1000 запросов = ~ 20 секунд на загрузку страницы
кусочек кода который выводит продукты в каталог, взят из eCommerce плагина BrilliantRetail для ExpressionEngine. Плагин кстати говоря стоит 150 баксов, мда )
+139
public string WorkerSexWord
{
get
{
if(WorkerSex == true)
{
return "м";
}
if(WorkerSex == false)
{
return "ж";
}
return "";
}
}
"м" или "ж" выбор с булевого поля
+142
http://habrahabr.ru/post/155131/
+67
if( $proverka === true )
$_SESSION['id'] = $user['id'];
if( $proverka === true )
$_SESSION['milo'] = $user['milo'];
if( $proverka === true )
$_SESSION['parol'] = $user['parol'];
if( $proverka === true )
$_SESSION['prava'] = $user['prava'];
if( $proverka === false )
echo 'Ввиденные вами данные неверны!';
if( $proverka === false )
$_SESSION['id'] = '';
if( $proverka === false )
$_SESSION['milo'] = '';
if( $proverka === false )
$_SESSION['parol'] = '';
if( $proverka === false )
$_SESSION['prava'] = '';
0-0 //-0 //-\\
−123
Функция СтрокаБезПробелов(sP,lenP= Неопределено) Экспорт
// убрать пробелы (на самом деле, символы 160) в строке sP
// (после преобразования числа в cтроку)
// если нужно - дописать пробелов спереди до длины lenP
s_ = СтрЗаменить(Строка(sP),Символ(160),"");
Если lenP>0 Тогда
l_ = СтрДлина(s_);
Если l_<lenP Тогда
j = lenP-l_;
Если j=1 Тогда
s_ = " "+s_;
Иначе
Если j=2 Тогда
s_ = " "+s_;
Иначе
Если j=3 Тогда
s_ = " "+s_;
Иначе
Если j=4 Тогда
s_ = " "+s_;
Иначе
Если j=5 Тогда
s_ = " "+s_;
Иначе
Если j=6 Тогда
s_ = " "+s_;
Иначе
Если j=7 Тогда
s_ = " "+s_;
Иначе
Если j=8 Тогда
s_ = " "+s_;
Иначе
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат s_;
КонецФункции
Вот такая замена функции Формат нашлась в исходниках от одного из внедренцев.
+136
// http://msdn.microsoft.com/en-us/library/dya2szfk%28v=VS.71%29.aspx
If x = True Then ' Compares x to the Boolean value True.
' Insert code to execute if x = True.
Else
' Insert code to execute if x = False.
End If
http://msdn.microsoft.com/en-us/library/dya2szfk%28v=VS.71%29.aspx
Учебник по языку, да
+63
function projects_action($action)
{
switch ($action) {
case '1': return 'Создал проект'; break;
case '2': return 'Изменил название'; break;
case '3': return 'Изменил бюджет'; break;
case '4': return 'Изменил дату добавления'; break;
case '5': return 'Изменил дату окончания'; break;
case '6': return 'Изменил приоритет'; break;
case '7': return 'Изменил язык'; break;
case '8': return 'Сменил клиента'; break
# …
case '32': return 'Изменил схему'; break;
default: return;
}
}
+141
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
И опять регулярки, но уже на уровне гигантов...
http://framework.zend.com/manual/2.0/en/user-guide/routing-and-controllers.html
+157
var temp = new Date(),
diff = parseInt(($('#calrlimit1').data('datebox').theDate - temp) / ( 1000 * 60 * 60 * 24 ));
diffstrt = (diff * -1)-1; // If you want a minimum of 1 day between, make this -2 instead of -1
diffend = diff + 11; // Why 11 instead of 10? No idea...
Документация к плагину jQuery Mobile DateBox2