- 1
- 2
- 3
// Просрока быть недолжно.
// Если нет платежа, то будет исключение.
// Оба эти случая логически исключены, если медот не дергать в неположеном месте.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+124
// Просрока быть недолжно.
// Если нет платежа, то будет исключение.
// Оба эти случая логически исключены, если медот не дергать в неположеном месте.
+125
wrs(S):-put_char('\"'), wrsi(S).
wrsi([C|S]):-put_char(C), wrsi(S).
wrsi([]):-put_char('\"').
wrl(S):-put_char('['), wrli(S), put_char(']').
wrli([C|[O|S]]):-wrs(C), put_char(','), wrli([O|S]).
wrli([C]):-wrs(C).
:- wrl(["dog", "cat", "canary"]).
Курю правильные примеры кода на прологе. PrologGovno ждите во всех кинотеатрах страны.
http://ideone.com/L4vIKs
Почему вместо того чтобы пользоваться стандартной функцией вывода списков или строк - автор рекомендует это? Я код правда поправил, а то хаскельных скобок (я уже без них не могу) не было и запятую в конце списка выдавало.
+132
У МИНЯ ЕСТЬ АЙФОН 5 И БАЛЬШОЙ ДОМ В МАЙНКРАВТЕ А ЧИВО ДАБИЛСЯ ТЫ?
Я БАГАТ И УСПЕШОН
+124
#pragma syntax(C++03) // было
int i,j,*pi,&ri=...,ai[10],aai[10][20];
const int ci = 100;
T myFunction (TX x1,TX x2,TY y1,TY ywd=...);
#pragma syntax(C++SD) // стало
var(int) i,j;
var(Ptr[int]) pi;
var(Ref[int]) ri = ...;
var(Array[int,10]) ai;
var(Array[Array[i,20],10]) aai;
var(Immutable[int]) ci = 100;
// отличать от:
const(int) cci = 100; // и cci с рантаймовой точки зрения будет чистой константой, а не "типа неизменяемой переменной"
function(T) myFunction (var(TX) x1,x2; var(TY) y1,ywd=...);
// ^смысл в том, чтобы список параметров имел ту же форму, что декларация переменных и членов структур
// возможны и константные функции
function const(int) constSum (const(int) x1,x2) { return x1+x2; }
// теперь constSum (1,2) будет всё равно что 3
// это теперь заменяет тайпдеф
const(typename) Int32 = int;
#pragma syntax(C++03) // было
class C
{
int mi;
static int si;
private:
float mf;
void privateMethod1 () {...}
void privateMethod2 ();
protected:
void staticMethod1 () {...}
void staticMethod2 ();
public:
virtual void virtualMethod ();
};
int C::si;
void C::privateMethod2 () {...}
void C::staticMethod2 () {...}
void C::virtualMethod () {...}
#pragma syntax(C++SD) // стало
class C
{
// эта секция называется "имплементацией класса"
var(int) mi;
// статические поля в имплементации класса не объявляются
private:
var(float) mf;
function() privateMethod1 () {...}
//void privateMethod2 (); // объявлять методы, который не имплементируются тут же, не обязательно
protected:
function() staticMethod1 (): Static
{...}
// Static - пометка для функции, декларируемой/имплементируемой в имплементации класса,
// что это не метод, а просто функция
public:
virtual function() virtualMethod ();
// в имплементации класса по-настоящему нужна декларация только переменных-полей,
// виртуальных методов и деструктора, если он пишется юзером
// также:
var(int) inlinelyInitialized = 100;
// да, инициализаторы тоже допускаются
};
using (C) var(int) si; // using(C) - пометка, что декларация касается неймспейса C
using (C) private: function() privateMethod2 (): Method {...}
// ^если метод объявляется/имплементируется вне имплементации класса, его
// нужно пометить как Method, чтобы отличить от обычной функции
// using можно юзать и целым блоком...
using (C)
{
protected:
// для функции-неметода вне имплементации класса уточнение Static не требуется
function() staticMethod2 {...}
public:
function() virtualMethod (): Method {...}
}
// глобальный скоп - тоже типа класс, для его явного указания, если вдруг понадобится,
// используется конструкция using (.)
Тот момент, когда понимаешь: "Какая радость, что в создатели стандарта крестов не берут кого попало."
http://www.gamedev.ru/flame/forum/?id=178107
+133
Не поленись, пройди по анкетам и поставь всем минусы.
минуисуя участников, ты помогаешш обществу.
+125
<Target Inputs="@(DeployLabel)" Name="GenericDeploy" Outputs="%(Identity).Dummy">
<PropertyGroup>
<TargetFilter>%(DeployLabel.Dir)</TargetFilter>
<TargetFilterReplaced>$(TargetFilter.Replace('\', ''))</TargetFilterReplaced>
</PropertyGroup>
<WriteLinesToFile
File="$(ProjectDir)tsfiles.txt"
Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(%(Filter),
'$(TargetFilterReplaced)'))"
Lines="@(TypeScriptCompile ->'"%(fullpath)"', ' ')"
Overwrite="false" />
<PropertyGroup>
<TSFilesFiltered>$([System.IO.File]::ReadAllText($(ProjectDir)tsfiles.txt))</TSFilesFiltered>
<TSFilesOneLine>$([System.Text.RegularExpressions.Regex]::Replace(
$(TSFilesFiltered), "[\n\r]+", " "))</TSFilesOneLine>
</PropertyGroup>
<Exec Command="tsc --target ES3 -c -d --out $(Deployroot)\foo.js $(TSFilesOneLine)" />
<Delete Files="$(ProjectDir)tsfiles.txt"/>
</Target>
Кто не был, тот будет, кто был, тот не забудет.
MSBuild: задача отфильтровать массив из строк. Я за два дня ничего лучшего не придумал.
+124
[% FOREACH i IN DYN_DATE_OPT %]
<td class="number [% IF loop.count mod 2 != 0 %]odd[% END %] distri_td" [% distri_style %]>[% DYN_FILTER_COMMIFY( distr_row.lic.$i ) || 0 %]</td>
[% UNLESS DYN_PARAMS.display_unprocent %]
<td class="number right_b [% IF loop.count mod 2 != 0 %]odd[% END %] distri_td" [% distri_style %]>[% DYN_FILTER_PERCENT( distr_row.lic.$i, distr_row.commonper.$i ) %]</td>
[% END %]
<td class="number left_b [% IF loop.count mod 2 != 0 %]odd[% END %] distri_td" [% distri_style %]>[% DYN_FILTER_COMMIFY( distr_row.gsn_lic.$i ) || 0 %]</td>
[% UNLESS DYN_PARAMS.display_unprocent %]
<td class="number right_b [% IF loop.count mod 2 != 0 %]odd[% END %] distri_td" [% distri_style %]>[% DYN_FILTER_PERCENT( distr_row.gsn_lic.$i, distr_row.gsnper.$i ) %]</td>
[% END %]
<td class="number left_b [% IF loop.count mod 2 != 0 %]odd[% END %] distri_td" [% distri_style %]>[% DYN_FILTER_COMMIFY( distr_row.lic_ov.$i, 'red' ) || 0 %]</td>
[% UNLESS DYN_PARAMS.display_unprocent %]
<td class="number [% IF loop.count mod 2 != 0 %]odd[% END %] distri_td" [% distri_style %]>[% DYN_FILTER_PERCENT( distr_row.lic_ov.$i, distr_row.gsnper.$i ) %]</td>
[% END %]
[% END %]
Template::Toolkit
236 вот такого вот шаблона. Во всём сервисе их пачка, и все аналогичны.
+119
border-color: #dadada #ebebeb #ebebeb #dadada;
CSS. Встречено в проекте, разработчики с пост-совка :)
+118
<table width="630" border="1" class="main">
<!-- Распирай. Властвуй. Унижай. -->
<table border="1" width="800" class="main">
<tr align="center"><td class="tds">
....
</td></tr>
</table></table>
Цель была- просто впихнуть широкую таблицу, когда "голова", и кусок основной таблицы сайта (то, что до "распирай") отдаются скриптом. Дабы не вносить существенных поправок в движковую часть, и страницы- пришлось наговнокодить.
+132
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
tmythread=class(tthread)
private
filename:string;
procedure execute;override;
public
constructor create(filename:string);
destructor destroy;
end;
type
TForm1 = class(TForm)
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
tlst:tthreadlist;
implementation
{$R *.dfm}
function getCount : integer;
begin
Result := tlst.LockList.Count;
tlst.UnlockList;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
tlst:=tthreadlist.Create;
end;
{ tmythread }
constructor tmythread.create(filename: string);
begin
self.FreeOnTerminate:=true;
self.filename:=filename;
inherited create(true);
self.Priority:=tphigher;
self.Resume;
tlst.LockList.Add(self);
tlst.UnlockList;
end;
destructor tmythread.destroy;
begin
tlst.Remove(self);
tlst.UnlockList;
end;
procedure tmythread.execute;
begin
while not terminated do
sleep(100); // в качестве примера, чем-то нагружаем цикл.
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
n:string;
temp:tmythread;
s:string;
begin
try
for i:=0 to getcount-1 do
begin
temp:=tlst.LockList.Items[i]; // вот это место. Как Вам кажется, это правильно, или не?
if assigned(temp) then
n:=temp.filename;
if n='ololo' then // это просто пример, не смеемся) АХАХАХАХ )
begin
showmessage('Сканирование этого файла уже выполняется') ;
exit;
end;
end;
tmythread.create('ololo');
except
end;
end;
end.
Стоит задача сканировать файлы в разных потоках. Как Вам кажется, это адекватное решение?
Код полностью.