- 1
- 2
- 3
- 4
- 5
- 6
- 7
...
F = fun(S) ->
ets:give_away(Table, NewOwner),
S
end,
sys:replace_state(OldOwner, F)
...
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 87
0
...
F = fun(S) ->
ets:give_away(Table, NewOwner),
S
end,
sys:replace_state(OldOwner, F)
...
Паттерн steal
+5
%% wrapper for math:log/1 to avoid dividing by zero
math_log(0) ->
1;
math_log(0.0) ->
1.0;
math_log(X) when X < 0 ->
0; % it's not possible to take a log of a negative number, return 0
math_log(X) ->
math:log(X).
Math, how does it work: https://github.com/folsom-project/bear/commit/6c19d6a2ee031512fca9916dd7cca2fc7ea2a38e
+3
http://www.bfilipek.com/2018/04/deprecating-pointers.html?m=1
Вот это удар в спину Царя! Он только начал нахваливать кресты,
как анскиллябры из комитета его предали.
0
-define(foo, foo).
-define(bar, bar).
-define(baz, baz).
...
foo(A, B) ->
gen_server:call(?MODULE, {?foo, A, B}).
...
handle_call({?foo, A, B}, _From, State) ->
...
Паттерн "мирный атом в каждый call".
+1
#!/usr/bin/env escript
%% -*- erlang -*-
%%! -smp enable -debug verbose
-include_lib("xmerl/include/xmerl.hrl").
-export([main/1, install_mod/1]).
-record(mod_info, { name :: string()
, links :: [{file:filepath(), file:filepath()}]
}).
main(Args) ->
[ModeDir, GameDir] = Args,
VirtualInstall = filename:absname(ModeDir ++ "/VirtualInstall/"),
RealPath = filename:absname(GameDir),
VirtualModCfg = VirtualInstall ++ "/VirtualModConfig.xml",
io:format( "Mode dir: ~p~n"
"Install dir: ~p~n"
"Current dir: ~p~n"
, [VirtualInstall, RealPath, element(2, file:get_cwd())]),
{Doc, []} = xmerl_scan:file(VirtualModCfg),
Mods = get_mods(VirtualInstall, RealPath, Doc),
[install_mod(I) || I <- Mods],
ok.
get_mods(VirtPath, RealPath, Doc) ->
[ #mod_info
{ name = xpath("/modInfo/@modName", Mod)
, links = get_links(VirtPath, RealPath, Mod)
}
|| Mod <- xmerl_xpath:string( "/virtualModActivator/modList/modInfo"
, Doc)].
get_links(VirtPath, RealPath, Doc) ->
[{ filename:absname( unixify(xpath("/fileLink/@realPath", FL))
, VirtPath)
, filename:absname( unixify(xpath("/fileLink/@virtualPath", FL))
, RealPath)
}
|| FL <- xmerl_xpath:string( "//fileLink[isActive = 'True']"
, Doc)].
xpath(Query, Doc) ->
case xmerl_xpath:string(Query, Doc) of
[#xmlAttribute{value = Val}] ->
Val
end.
unixify(Path) ->
lists:map(
fun($\\) -> $/;
(A) -> A
end,
Path).
install_mod(#mod_info{name = Name, links = Links}) ->
io:format("Installing ~s...~n", [Name]),
lists:foreach(
fun({From, To}) ->
filelib:ensure_dir(To),
file:make_symlink(From, To)
end,
Links).
+6
data Foo a = Foo {a :: a, b :: Int}
| Bar {b :: Int}
foo :: (a -> b) -> Foo a -> Foo b
foo f x@Foo{a = a} = x{a = f a}
foo _ x@Bar{} = x -- error: Couldn't match type ‘a’ with ‘b’
foo _ x@Bar{} = x{} -- error: Empty record update
Рекорды всё-таки дубовые
cast @HaskellGovno
+3
#!/bin/sh
while true; do
date "+Time is %H %M. Stop lurking and get the fuck to work" | say
sleep 1800
done
Я наконец нашёл применение встроенному в OS X TTS-движку.
+2
var CodeMirror = require("codemirror");
var Thrift = require("thrift.js");
require("./src/my.css");
include(`gen-js/test_types.js')
include(`gen-js/TestServ.js')
include(`src/main.js')
Против m4 нет приёма.
+2
https://github.com/BlackMATov/kari.hpp/blob/master/kari.hpp
Безответственные функциональщики сливали в океан блогосферы радиоактивные отходы, и вот печальный итог: гигантская радиоактивная Метушилла начала сокрушать гитхаб! Даже само название либы уже намекает.
+2
Lemma use_prop_equality : forall {X} (f : X -> Prop) a b,
a = b -> f a -> f b.
Proof.
intros X f a b He Ha.
destruct He. apply Ha.
Qed.
Тактика rewrite не нужна.