- 1
- 2
isParallel :: Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Bool
isParallel x1 y1 x2 y2 x3 y3 x4 y4 = if (((x1-x2)*(y3-y4)-(y1-y2)*(x3-x4)) == 0) then True else False
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+128
isParallel :: Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Bool
isParallel x1 y1 x2 y2 x3 y3 x4 y4 = if (((x1-x2)*(y3-y4)-(y1-y2)*(x3-x4)) == 0) then True else False
лаба по хаски
параллельны ли 2 прямые?
+138
Викиучебник по хаскелю такой викиучебник
Задание - написать frequency — функция, возвращающая список пар (символ, частота). Каждая пара определяет атом из заданного списка и частоту его вхождения в этот список.
Решение
frequency :: [a] -> [(a : Integer)]
frequency l = f [] l
f :: [a] -> [a] -> [(a : Integer)]
f l [] = l
f l (h:t) = f (corrector h l) t
corrector :: a -> [a] -> [(a : Integer)]
corrector a [] = [(a : 1)]
corrector a (a:n):t = (a : (n + 1)) : t
corrector a h:t = h : (corrector a t)
Логика-то верна, но код тупо не скомпилится. И как тут быть нубцу?
Задание - Описать следующие классы типов. При необходимости воспользоваться механизмом наследования классов.
Show — класс, объекты экземпляров которого могут быть выведены на экран.
Думаю что-то мегасложное, сделать самому руками show
Решение
class Show a where
show :: a -> String
/-*)
Викиучебник по хаскелю такой викиучебник
0
enum class Measures {
B, KB, MB, GB;
private val size = BigDecimal.valueOf(1024L).pow(ordinal)
companion object {
fun toHumanSize(value: Long): String {
val decValue = value.toBigDecimal()
val measure = values().reversed().find { it.size < decValue } ?: B
return "${decValue.divide(measure.size, 3, RoundingMode.UP)} $measure"
}
}
}
+78
wb.getApplication().run(macro, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null);
Использование библиотеки для взаимодействия с мелкософтовскими COM-объектами
+165
function register()
{
if (!empty($_POST)) {
$msg = '';
if ($_POST['user_name']) {
if ($_POST['user_password_new']) {
if ($_POST['user_password_new'] === $_POST['user_password_repeat']) {
if (strlen($_POST['user_password_new']) > 5) {
if (strlen($_POST['user_name']) < 65 && strlen($_POST['user_name']) > 1) {
if (preg_match('/^[a-z\d]{2,64}$/i', $_POST['user_name'])) {
$user = read_user($_POST['user_name']);
if (!isset($user['user_name'])) {
if ($_POST['user_email']) {
if (strlen($_POST['user_email']) < 65) {
if (filter_var($_POST['user_email'], FILTER_VALIDATE_EMAIL)) {
create_user();
$_SESSION['msg'] = 'You are now registered so please login';
header('Location: ' . $_SERVER['PHP_SELF']);
exit();
} else $msg = 'You must provide a valid email address';
} else $msg = 'Email must be less than 64 characters';
} else $msg = 'Email cannot be empty';
} else $msg = 'Username already exists';
} else $msg = 'Username must be only a-z, A-Z, 0-9';
} else $msg = 'Username must be between 2 and 64 characters';
} else $msg = 'Password must be at least 6 characters';
} else $msg = 'Passwords do not match';
} else $msg = 'Empty Password';
} else $msg = 'Empty Username';
$_SESSION['msg'] = $msg;
}
return register_form();
}
Из рассылки PHPWeekly: "A Clean and Secure Open Source PHP Login Script"
https://github.com/panique/php-login/blob/master/0-one-file/index.php#L98
Что-то уж очень сильно "Clean".
−136
sub parse_http_date($)
{
my ($date)=@_;
my %months=(Jan=>0,Feb=>1,Mar=>2,Apr=>3,May=>4,Jun=>5,Jul=>6,Aug=>7,Sep=>8,Oct=>9,Nov=>10,Dec=>11);
if($date=~/^[SMTWF][a-z][a-z], (\d\d) ([JFMASOND][a-z][a-z]) (\d\d\d\d) (\d\d):(\d\d):(\d\d) GMT$/)
{ return eval { timegm($6,$5,$4,$1,$months{$2},$3-1900) } }
return undef;
}
Вакаба.
+142
enum {size = 10, timeout = 50};
0
#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
#include <limits.h>
int gcc_rtm_virt_test(int a, int(*f)(int, int(*)(), float*), float fa[static (-1,0,1)]) {
short s = sizeof (short) + sizeof 0;
char b[12] = "0123456789";
for (long ll = sizeof b; ll -= 4;) {
b[ll] = '0';
b[ll-1] = '1';
b[ll-2] = '2';
b[ll-3] = '3';
}
return s - ((1 << 2) - (b[0] - '2'));
}
int gcc_rtm_cf32(int(*f0)(), int(*f1)()) {
ptrdiff_t d = f1 - f0;
// guess you know what you're doing
if (! (d >> sizeof (ptrdiff_t) * CHAR_BIT - 1)) {
while (d--) {
switch(*(unsigned short*)(f0 + d)) {
case 0xc3c9:
return 0;
case 0xb8:
if (!*(unsigned int*)(f0 + d + 1)) {
return 1;
}
break;
case 0xC031:
return 2;
}
}
return -1;
};
return -2;
}
int main() {
switch (gcc_rtm_cf32(gcc_rtm_virt_test, gcc_rtm_cf32)) {
case -1:
fprintf(stderr, "Hey, added smth. special? Maybe -Og? \n"), abort();
break;
case 0:
fprintf(stderr, "Hey, -O0 smells like a dead rat.. check your flags!\n"), abort();
break;
case 1:
fprintf(stderr, "Hey, -O1 is still not allowed.. Would you do better?\n"), abort();
break;
case 2:
fprintf(stdout, "Hey, finally you've captured [-O2 || -O3 || -Ofast || -Os] flag!");
break;
default:
fprintf(stderr, "Hey, looks like you've got impl. defined crap, check PTRDIFF_T stuff.. \n"), abort();
break;
};
}
И далее по тексту..gcc'шники опять обкурились в рантайме. Зачэм так делоть, это прикольно?
0
table inet filter {
set open_ports {
type inet_proto . inet_service
counter
elements = { tcp . 123 counter packets 0 bytes 0,
udp . 123 counter packets 0 bytes 0,
tcp . 456 counter packets 0 bytes 0,
tcp . 567 counter packets 0 bytes 0 }
}
chain input {
type filter hook input priority filter; policy drop;
iifname "eth*" ct state established,related accept
iifname "eth*" ct state invalid drop
iifname "eth*" ct state new meta l4proto . th dport @open_ports accept
}
}
«nftables» — охуенны.
−4
<p>8. Создать гостевую книгу, где любой человек может оставить комментарий в текстовом поле и
добавить его. Все добавленные комментарии выводятся над текстовым полем. Реализовать
проверку на наличие в тексте запрещенных слов, матов. При наличии таких слов - выводить
сообщение "Некорректный комментарий". Реализовать удаление из комментария всех тегов,
кроме тега <b>.
</p>
<?php
if (!is_file('otzyvy.txt')) {
echo "Поки що немає відгуків, Ваш буде першим! <br />";
$file = fopen('otzyvy.txt', 'a+');//щоб не генерувало помилку, створюємо файл
}
elseif (isset($_POST['textar']) && $_POST['textar']) {
$file = fopen('otzyvy.txt', 'a+');//дублюємо строку так як тут інша умова
$text = strip_tags($_POST['textar'], '<b>');
$pozition = strpos($text, 'хуй');
$pozition_1 = strpos($text, 'пизд');
if ($pozition || $pozition === 0 || $pozition_1 || $pozition_1 === 0){
die ("Некорректный комментарий");
}
$new_otzyvy = fwrite($file, $text.PHP_EOL);
$arr = file('otzyvy.txt');//перетворюємо файл у масив щоб потім було зручніше виводити його елементи
foreach ($arr as $key => $item) {
$key_1 = $key + 1;//це для візуалбної нумерації відгуків
echo "Відгук {$key_1}: {$item} <br /><br />";
}
}
else {
echo 'Щоб відправити відгук, потрібно заповнити поле форми!!!';
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Задача 8</title>
</head>
<body>
<form action="" method="post">
<textarea name="textar" placeholder="Введіть свій коментарій"></textarea>
<br />
<input type="submit" value="Відправити">
</form>
<br />
<br />
</body>
</html>