+122
- 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
#if defined(REG_R1) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R1,REG_R1)
#else
# define R1 (BaseReg->rR1)
#endif
#if defined(REG_R2) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R2,REG_R2)
#else
# define R2 (BaseReg->rR2)
#endif
#if defined(REG_R3) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R3,REG_R3)
#else
# define R3 (BaseReg->rR3)
#endif
#if defined(REG_R4) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R4,REG_R4)
#else
# define R4 (BaseReg->rR4)
#endif
#if defined(REG_R5) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R5,REG_R5)
#else
# define R5 (BaseReg->rR5)
#endif
#if defined(REG_R6) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R6,REG_R6)
#else
# define R6 (BaseReg->rR6)
#endif
#if defined(REG_R7) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R7,REG_R7)
#else
# define R7 (BaseReg->rR7)
#endif
...
Исходник GHC
https://github.com/ghc/ghc/blob/master/includes/stg/Regs.h#L147
j123123,
27 Июля 2013
+154
- 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
$zak=$row['content'];
$ret=$ret.'<td>';
$p_ret=array();
$t_zak=explode('{',$zak);
$t_c=count($t_zak)-2;
//------------------------------------------
for($t_i=0;$t_i<$t_c;$t_i++){
$zak=$t_zak;
$zak=explode('}',$zak[$t_i+2]);
$zak=explode(';',$zak[0]);
$p_zak=array();
$c=(int)floor(count($zak)/2);
$c=(int)($c*2);
for($i=0;$i<$c;$i=$i+2){
$temp=explode(':',$zak[$i]);
$ind=str_replace('"','',$temp[count($temp)-1]);
$temp=explode(':',$zak[$i+1]);
$val=str_replace('"','',$temp[count($temp)-1]);
$p_zak[$ind]=$val;
}
$p_zak['id']=(int)$p_zak['id'];
//[count] => 3 [id] => 21 [name] => Стул [price] => 213454
$p_ret[]='<a href="[[~'.$p_zak['id'].']]">'.$p_zak['name'].'</a> '.$p_zak['count'].' шт.';
После модернизации одного из Интернет магазинов сломался личный кабинет ( MODX Revolution, Shopkeeper ).
Начал изучать и понял, что прошлый программист изобрел заново unserialize.
Rostov114,
14 Июня 2013
+113
- 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
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Pause extends JFrame{
private int MAX;
private static String s;
Pause(){
this.setSize(300, 300);
this.setVisible(true);
}
public void text(String s, final Thread t){
try {
t.wait();
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
JLabel l = new JLabel(s);
l.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
t.notify();
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
});
this.add(l);
}
public int getMAX() {
return MAX;
}
public void setMAX(int mAX) {
MAX = mAX;
}
public String getS() {
return s;
}
public void setS(String s) {
this.s = s;
}
public void appendS(String s) {
this.s += s;
}
public static void main(final String[] args){
final Pause p = new Pause();
final Thread t = new Thread(new Runnable() {
public void run() {
for (int i = 0; i < p.getMAX(); ++i){
p.appendS(i + " ");
if (i+2 <= p.getMAX()){
p.text(s, t); //error
}
}
}
});
t.start();
}
}
Прислала подруга, изучающая потоки в Java, с просьбой подсказать, почему выдаётся ошибка компиляции при использовании переменной t внутри run.
Придётся объяснять, что в этом коде неправильно вообще всё, от первой до последней строки...
someone,
03 Мая 2013
−113
- 1
- 2
- 3
- 4
+ (BOOL) isInteger:(CGFloat) number
{
return number - (int) number<0.0001;
}
В классе используется только ради того, чтобы при передаче нецелого флоата вывести километровый NSLog, в котором долго жаловаться на жизнь и полпикселя.
Xtasy,
10 Апреля 2013
+125
- 1
- 2
- 3
- 4
void get_me(const char **retval)
{
*retval = "Hello, Word!";
}
Надейся на компилятор...
Novi4oK,
16 Февраля 2013
+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
+15
- 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
#include <iostream>
#include <functional>
template<class Container, class F, class A>
auto accumulate(Container c, F f, A acc) -> A
{
auto id = [](const A& a) -> const A& {return a;};
typedef decltype(std::begin(c)) Iterator;
const std::function<A(const Iterator& lst, const std::function<A(const A&)>&)> doIt =
[&](const Iterator& lst, const std::function<A(const A&)>& cont) -> A
{
if(lst==c.end())
return cont(acc);
else
{
auto conter=[&](const A& acc) -> A {return cont(f(*lst, acc));};
return doIt(lst+1, conter);
}
};
return doIt(std::begin(c), id);
}
int main() {
std::cout<<accumulate({1,2,3,4}, std::plus<int>(), 0);
return 0;
}
Похоже написал какой-то монадолог.
http://ideone.com/y4Dm9z
Пример использования accumulate сам накатал.
Я побаловался с этим примером, чтобы разобраться и GCC ожидаемо упал:
http://ideone.com/XWfuoP
Я убежден, что эта функция должна была выглядеть как-то так:
template<class Container, class F>
accumulate(const Container& c, const F& f=std::plus<decltype(*(std::begin(c)))>(), const decltype(*(std::begin(c))) acc=decltype(*(std::begin(c)))()) -> decltype(*(std::begin(c)))
{
return std::accumulate(c.begin(), c.end(), acc, f);
}
//Вызов этой функции:
accumulate({1,2,3,4});
Ну и я погуглил на тему этого говнокода и нашел на функциональном языке похожий:
let fold_right func acc list =
let rec loop list cont = //сюда мы передаем текущую функцию континуации
match list with
|[] -> cont acc //а вот и наше ключевое вычисление.
|head::tail -> loop tail (fun racc -> cont (func head racc))
loop list (fun x -> x)
LispGovno,
23 Ноября 2012
+136
- 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
private BusinessSocialProfile GetSocialProfileLink(string searchProvider, string searchKey)
{
var link = new BusinessSocialProfile { Name = searchProvider, Url = "#" };
if (searchProvider.Contains("city", StringComparison.InvariantCultureIgnoreCase))
{
link.Url = cityLink;
link.Logo = "/citysearch.png";
link.ImageStyle = "margin-top:-8px";
}
else if (searchProvider.Contains("google", StringComparison.InvariantCultureIgnoreCase))
{
link.Url = googleLink;
link.Logo = "/google.png";
}
else if (searchProvider.Contains("yelp", StringComparison.InvariantCultureIgnoreCase))
{
link.Url = yelpLink;
link.Logo = "/yelp.png";
link.ImageStyle = "margin-top:-8px";
}
else if (searchProvider.Contains("manta", StringComparison.InvariantCultureIgnoreCase))
{
link.Url = mantaLink;
link.Logo = "/manta.png";
}
else if (searchProvider.Contains("patch", StringComparison.InvariantCultureIgnoreCase))
{
link.Url = patchLink;
link.Logo = "/patch.png";
}
else
{
link.Url = "#";
link.Logo = string.Empty;
link.Name = string.Empty;
}
return link;
}
уже до боли известный девелопер ;) а для чего еще нужна бизнесс-логика...?
mangyst,
16 Ноября 2012
+71
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
class ........... {
BigDecimal t;
...
public boolean t_is_zero(){
BigDecimal zero = new BigDecimal(0);
if(this.t == zero)
return true;
else
return false;
}
...
}
для операции сравнения была создана новая переменная как эквивалент )
azv,
12 Ноября 2012
+132
- 1
- 2
- 3
- 4
enum
{
MaxStringLen = 1024
};
Офигенный метод объявления констант!
glook,
13 Августа 2012