-
+130
- 1
- 2
- 3
- 4
- 5
- 6
perft :: Int -> Position -> Int
perft depth pos
| depth <= 0 = 1
| otherwise = sum . map (perft $ depth - 1) $ legalPositions where
legalPositions = filter isLegalPosition nextpositions
nextpositions = map (\move -> makeMove move pos) $ (moves pos)
Fai,
28 Ноября 2012
-
+146
- 1
- 2
- 3
- 4
- 5
- 6
- 7
Object.prototype.merge = function(objects){
var newObj = this;
for(var key in objects){
key!='merge'?newObj[key] = objects[key]:void(0);
}
return newObj;
};
Выглядит ужасно, но ничего другого не придумал. Подскажите как правильно?)
P.S. Если убрать проверку "key!='merge'?" то в объекте становится на 1 ключ больше('merge')
Stud,
28 Ноября 2012
-
+54
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
if($i!='0')
{
$query="SELECT DATE_ADD(CURDATE(), INTERVAL ".$i." MONTH)";
$temp_date_array=mysql_fetch_row(mysql_query($query));
$temp_date_newmonth=$temp_date_array[0];
$query="SELECT DAYOFMONTH('".$temp_date_newmonth."');";
$day=mysql_fetch_row(mysql_query($query));
$query="SELECT DATE_ADD('".$temp_date_newmonth."', INTERVAL -".($day[0]-1)." DAY)";
$temp_date_array=mysql_fetch_row(mysql_query($query));
$temp_date=$temp_date_array[0];
$query="SELECT DATE_ADD('".$temp_date."', INTERVAL 1 MONTH);";
$temp_date_array=mysql_fetch_row(mysql_query($query));
$temp_date_end=$temp_date_array[0];
}
else
{
$query="SELECT CURDATE();";
$temp_date_array=mysql_fetch_row(mysql_query($query));
$temp_date=$temp_date_array[0];
$query="SELECT DAYOFMONTH('".$temp_date."');";
$day=mysql_fetch_row(mysql_query($query));
$query="SELECT DATE_ADD(CURDATE(), INTERVAL 1 MONTH)";
$temp_date_array=mysql_fetch_row(mysql_query($query));
$temp_date_end_newmonth=$temp_date_array[0];
$query="SELECT DATE_ADD('".$temp_date_end_newmonth."', INTERVAL -".($day[0]-1)." DAY)";
$temp_date_array=mysql_fetch_row(mysql_query($query));
$temp_date_end=$temp_date_array[0];
}
$query="SELECT MONTH('".$temp_date."');";
http://forum.php.su/topic.php?forum=69&topic=50&v=#135410099 3
sKaa,
28 Ноября 2012
-
+78
- 1
- 2
- 3
- 4
- 5
if ((act_type == 15) || (act_type == 24)) {
} else {
if (duration != null)
dts.setDuration(dts.getDuration().add(duration));
}
Вся пунктуация сохранена и НИЧЕГО НЕ ВЫРЕЗАНО
Волшебный if
Пруф [[ скрыт ]]
строка 112 - 116
smpl,
28 Ноября 2012
-
+51
- 1
- 2
- 3
- 4
$needMoreDataWM = ($exchange->getSumTo()->getCurrency()->getSystem()->getModule() == 'WebMoney' || $exchange->getSumFrom()->getCurrency()->getSystem()->getModule() == 'WebMoney') || $this->getRequest()->request->get('user_wmid');
$needMoreDataWM = $needMoreDataWM && !$user->getWmid();
$needMoreDataBank = ($exchange->getSumTo()->getCurrency()->getSystem()->getClass() == 'bank') && !$user->getVat() || $this->getRequest()->request->get('user_vat');
$needMoreData = $needMoreDataBank || $needMoreDataWM || !($user->getFullname() && $user->getPassport()) || $this->getRequest()->request->get('user_fullname') || $this->getRequest()->request->get('user_passport');
А что поделаешь, Doctrine принуждает
nick4fake,
28 Ноября 2012
-
+12
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
#include <stdio.h>
#include <type_traits>
#include <string>
struct hack_t{};
template<class TYPE>static hack_t operator&(const TYPE&,hack_t){return hack_t();}
int main()
{
struct type{};
std::string var="win";
#define get_meta(var)[&]()->bool{hack_t unnamed;hack_t foo(var&unnamed);return std::is_function<decltype(foo)>::value;}()
bool result_0=get_meta(var);
bool result_1=get_meta(type);
#undef get_meta
printf("get_meta(var) == %s\n",result_0?"true":"false");
printf("get_meta(type) == %s\n",result_1?"true":"false");
return 0;
}
Код отличает переменную от типа.
http://ideone.com/t7BBO4
Сами знаете откуда.
LispGovno,
27 Ноября 2012
-
+10
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
//В mathc.hpp:
typedef float import (float);
//В неком cpp функция:
float cm() {
import calcFpu;
//...
float src = //...
float res = calcFpu(src);
return res;
}
//В mathc.cpp:
void calcFpu(float){
//...
void calcSSE(float){
//...
Мои глаза... В перлы.
http://ideone.com/RBAMyv
LispGovno,
27 Ноября 2012
-
+128
Аццкий смайлик! Сборка запроса XPath для поиска элементов в XML DOM по значениям, переданным из другой функции.
sprintf(str,"%s[@%s='%s']",elemPath,attrName,value);
GoblinAlchemist,
27 Ноября 2012
-
+130
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
#include <stdlib.h>
struct no_matter
{
int some_field;
};
struct matter *do_stuff(void)
{
struct no_matter *m = calloc(1, sizeof *m);
return m;
}
int main(void)
{
struct no_matter *m = do_stuff();
free(m);
return 0;
}
Сегодня выполняю роль гумна. В сишке можно возвращать указатель на непонятно откуда взявшуюся необъявленную ранее структуру и код будет компиляться (ладно хоть пишет невнятные ворнинги, только благодаря им нашёл опечатку в одной букве в имени структуры в рабочем коде). Понятно, что все указатели одинаково числа, но всё равно как-то некрасиво. Хацкелисты негодуэ, даёшь монаду Ptr
http://ideone.com/3SABHW
roman-kashitsyn,
27 Ноября 2012
-
+75
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
procedure TForm1.RunCode(Code:String;A,B:Cardinal);
var
i,j:Cardinal;
dpth:Word;
itrCounter:Integer;
ans:Integer;
begin
i:=A-1;
repeat
i:=i+1;
if Code[i]='>' then
if p=30000 then p:=1 else p:=p+1;
if Code[i]='<' then
if p=1 then p:=30000 else p:=p-1;
if Code[i]='+' then allspace[p]:=allspace[p]+1;
if Code[i]='-' then allspace[p]:=allspace[p]-1;
if Code[i]='.' then Memo2.Lines.Text:=Memo2.Lines.Text + Chr(allspace[p]);
if Code[i]='[' then
begin
dpth:=0;
j:=i;
repeat
if (Code[j]=']') and (dpth>0) then dpth:=dpth-1;
j:=j+1;
if Code[j]='[' then dpth:=dpth+1;
if j>B then
begin
ShowMessage('Обнаружен незакрытый цикл. Выполнение остановится');
running:=False;
Exit;
end;
until (Code[j]=']') and (dpth=0);
itrCounter:=0;
while allspace[p]<>0 Do
begin
if running=False then Exit;
RunCode(Memo1.Text,i+1,j-1);
itrCounter:=itrCounter+1;
if itrCounter=10000000 then
begin
ans:=MessageDlg('Выполнение программы вероятно зациклилось (прошло уже 10 000 000 итераций). Возможно код содержит ошибки.' + #13 + 'Остановить выполнение?',mtConfirmation,[mbYes,mbNo],0);
if ans=mrYes then running:=False;
if ans=mrNo then itrCounter:=0;
end;
end;
i:=j;
end;
if Code[i]=',' then EnterChar;
Application.ProcessMessages;
until (i>=B) or (running=False);
end;
Процедура интерпретации brainfuck кода
SmseR,
27 Ноября 2012