- 1
- 2
fib = 0 : 1 : zipWith (+) fib (tail fib)
main = print $ take 700 fib
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+118
fib = 0 : 1 : zipWith (+) fib (tail fib)
main = print $ take 700 fib
+124
import Control.Monad
import Control.Arrow
import Data.List
solve' :: [String] -> [[String]]
solve' = nub . filter (
and . uncurry (
zipWith (
(.head) . (==) . last
)
) . (id &&& tail)
) . uncurry ($) . (
last . (((
map (
last . fst &&& uncurry (++) . (init . fst &&& snd)
) . tail . uncurry (zipWith (,)) . (inits &&& tails)
) >=> (uncurry map) .
((:) *** solve')
):
) . (uncurry takeWhile) . (
const . null &&& const [const [[]]]
) &&& id
)
main = print $ solve' ["123","321","123"]
−106
- (void)shutdownSoundManager {
@synchronized(self) {
if(sharedSoundManager != nil) {
[self dealloc];
}
}
}
Убийца синглетонов, блджд
−162
/*здесь было много кода*/
DECLARE @Strings TABLE /* in this temporary table we keep all strings, even the names of the elements, since they are 'escaped' in a different way, and may contain, unescaped, brackets denoting objects or lists. These are replaced in the JSON string by tokens representing the string */
(
String_ID INT IDENTITY(1, 1),
StringValue NVARCHAR(MAX)
)
SELECT--initialise the characters to convert hex to ascii
@characters='0123456789abcdefghijklmnopqrstuvwxyz',
/* firstly we process all strings. This is done because [{} and ] aren't escaped in strings, which complicates an iterative parse. */
@parent_ID=0;
WHILE 1=1 --forever until there is nothing more to do
BEGIN
SELECT
@start=PATINDEX('%[^a-zA-Z]["]%', @json collate SQL_Latin1_General_CP850_Bin);--next delimited string
IF @start=0 BREAK --no more so drop through the WHILE loop
IF SUBSTRING(@json, @start+1, 1)='"'
BEGIN --Delimited Name
SET @start=@Start+1;
SET @end=PATINDEX('%[^\]["]%', RIGHT(@json, LEN(@json+'|')-@start) collate SQL_Latin1_General_CP850_Bin);
END
IF @end=0 --no end delimiter to last string
BREAK --no more
SELECT @token=SUBSTRING(@json, @start+1, @end-1)
--now put in the escaped control characters
SELECT @token=REPLACE(@token, FROMString, TOString)
FROM
(SELECT
'\"' AS FromString, '"' AS ToString
UNION ALL SELECT '\\', '\'
UNION ALL SELECT '\/', '/'
UNION ALL SELECT '\b', CHAR(08)
UNION ALL SELECT '\f', CHAR(12)
UNION ALL SELECT '\n', CHAR(10)
UNION ALL SELECT '\r', CHAR(13)
UNION ALL SELECT '\t', CHAR(09)
) substitutions
SELECT @result=0, @escape=1
--Begin to take out any hex escape codes
WHILE @escape>0
BEGIN
SELECT @index=0,
--find the next hex escape sequence
@escape=PATINDEX('%\x[0-9a-f][0-9a-f][0-9a-f][0-9a-f]%', @token collate SQL_Latin1_General_CP850_Bin)
IF @escape>0 --if there is one
BEGIN
WHILE @index<4 --there are always four digits to a \x sequence
BEGIN
SELECT --determine its value
@result=@result+POWER(16, @index)
*(CHARINDEX(SUBSTRING(@token, @escape+2+3-@index, 1),
@characters)-1), @index=@index+1 ;
END
-- and replace the hex sequence by its unicode value
SELECT @token=STUFF(@token, @escape, 6, NCHAR(@result))
END
END
--now store the string away
INSERT INTO @Strings (StringValue) SELECT @token
-- and replace the string with a token
SELECT @JSON=STUFF(@json, @start, @end+1,
'@string'+CONVERT(NVARCHAR(5), @@identity))
END
парсинг json-строки sql скриптом. полная версия тут : https://www.simple-talk.com/sql/t-sql-programming/consuming-json-strings-in-sql-server/
−98
dispatch_async(dispatch_get_global_queue(0, 0), ^{
[NSThread sleepForTimeInterval:0.35];
[[NSThread mainThread] performBlock:^{
[titleLabel setHidden:NO];
}];
});
+67
public final class SomeActivity extends Activity {
@Override
protected Dialog onCreateDialog(int id) {
Dialog dialog = null;
if (id == DialogGenerator.SETTINGS_DIALOG) {
dialog = mDialogGenerator.createSettingsDialog();
} {
dialog = super.onCreateDialog(id);
}
return dialog;
}
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
super.onPrepareDialog(id, dialog);
if (id == DialogGenerator.SETTINGS_DIALOG) {
mDialogGenerator.prepareSettingsDialog((AlertDialog) dialog, someBoolValue, someObjectValue);
}
}
}
public final class DialogGenerator {
public Dialog createSettingsDialog() {
int dialogId = SETTINGS_DIALOG;
int titleId = R.string.settingsTitle;
String[] itemsArray = getStringArray(R.array.settings);
ThreeTypeOptionsAdapter adapter = new ThreeTypeOptionsAdapter(mControllerAsActivity, itemsArray,
mCheckableOptions, mTwoTextOptions);
AlertDialogCallback dialogCallback = new AlertDialogCallback(mControllerAsDialogHost, dialogId);
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mControllerAsActivity);
dialogBuilder.setTitle(titleId);
// костыль
dialogBuilder.setSingleChoiceItems(itemsArray, 0, null);
// конец костыля
dialogBuilder.setAdapter(adapter, dialogCallback);
AlertDialog dialog = dialogBuilder.create();
setMainListenersOnDialog(dialog);
dialog.getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
return dialog;
}
public void prepareSettingsDialog(AlertDialog dialog, boolean someBoolValue, String someStringValue) {
//костыль
ListView dialogList = dialog.getListView();
dialogList.clearChoices();
dialogList.setItemChecked(POSITION_FOR_BOOL, someBoolValue);
//конец костыля
ThreeTypeOptionsAdapter adapter = (ThreeTypeOptionsAdapter) dialogList.getAdapter();
adapter.setAdditionalValue(POSITION_FOR_STRING, someStringValue);
}
}
Задача: показать диалог, внутри которого есть 3 типа ячеек: выделяемые с чекбоксом справа, невыделяемые с дополнительной надписью справа, обычные невыделяемые.
Примерно так:
Use GPS checkbox
Selected country Russia
Launch some activity
В комментах к методам я описал костыль:
Здравствуйте, дорогие друзья. Сегодня мы с вами поговорим об уникальном виде животных, которых открыли только в конце XX века. Это, дорогие друзья, Ява-обезьяны. Давайте дружно откроем сырцы Андроид-СДК, а именно - класс com.android.internal.app.AlertController .AlertParams - и метод createListView(AlertController). Видите, одна обезьяна решила, что нам будет удобней, если диалог автоматом задисмиссится, когда мы щёлкнем по элементу списка в CHOICE_MODE_NONE, и OnClickListener будет не null? А теперь давайте перейдём в android.app.AlertDialog.Builder. Видите, там другая обезьяна решила, что для multi-choice списка нам не потребуется хитроумный адаптер? Поэтому, дорогие друзья, когда мы поставили кастомный адаптер (setAdapter()) и сопроводили его слушателем, то какой бы мы choice mode не ставили после AlertDialog.Builder.create(), диалог дисмиссился. Поэтому, дорогие друзья, пришлось пойти на хитрость и вначале установить single choice (чтобы флаг mIsSingleChoice стал true), а потом уже ставить адаптер.
+133
drwxrwxrwx 1 wvxvw None 0 02-17 16:59 .svn
-rw-rw-rw- 1 wvxvw None 22082 02-04 11:03 header.asp
-rw-rw-rw- 1 wvxvw None 14331 02-04 11:02 header.utf.asp
-rw-rw-rw- 1 wvxvw None 10333 02-04 11:01 header2.asp
-rw-rw-rw- 1 wvxvw None 10368 02-04 11:02 header2_test.asp
-rw-rw-rw- 1 wvxvw None 11825 02-04 11:02 header3.asp
-rw-rw-rw- 1 wvxvw None 11734 02-04 11:03 header3_liran.asp
-rw-rw-rw- 1 wvxvw None 11238 02-04 11:01 header3_old.asp
-rw-rw-rw- 1 wvxvw None 7403 02-04 11:02 header3_ssl.asp
-rw-rw-rw- 1 wvxvw None 9045 02-04 11:01 header3del.asp
-rw-rw-rw- 1 wvxvw None 39451 02-04 11:02 header4.asp
-rw-rw-rw- 1 wvxvw None 40224 02-04 11:02 header4_new.asp
-rw-rw-rw- 1 wvxvw None 13348 02-04 11:02 header4rus.asp
-rw-rw-rw- 1 wvxvw None 230 02-04 11:02 headers.asp
-rw-rw-rw- 1 wvxvw None 208 02-06 09:37 headers.php
Наследство.
+157
if (!("" instanceof String)) throw new Error("Empty string is not a string");
Майкрософт. JScript, ASP.
+145
if (!$to && !$from)
{
$msgInstance->setStatus(1);
$msgInstance->setDeletedTo(1);
$msgInstance->setDeletedFrom(1);
$incomingL = -1;
$outcomingL = -1;
}
elseif (!$to){
$msgInstance->setStatus(1);
$msgInstance->setDeletedTo(1);
$incomingL = -1;
$outcomingL = 0;
}
elseif (!$from)
{
$msgInstance->setDeletedFrom(1);
$incomingL = 0;
$outcomingL = -1;
}
Оцените xD ;)
+28
if ( _It->m_sOpenText.substr( 0, 3 ) == "<tr" ||
_It->m_sOpenText.substr( 0, 3 ) == "<th" ||
_It->m_sOpenText.substr( 0, 3 ) == "<td" ||
_It->m_sOpenText.substr( 0, 6 ) == "<thead" ||
_It->m_sOpenText.substr( 0, 6 ) == "<tbody" ||
_It->m_sOpenText.substr( 0, 6 ) == "<tfoot" ||
_It->m_sOpenText.substr( 0, 8 ) == "<caption" ||
_It->m_sOpenText.substr( 0, 4 ) == "<col" ||
_It->m_sOpenText.substr( 0, 9 ) == "<colgroup" )
return; // TODO: я пишу ТАКОЙ код, убейте меня...
Продолжаем неделю свитчей — HTML-препроцессор!