Эта проблема возникла для меня после установки модуля под Podfile и pod install
. Попробовав кучу разных исправлений, я, наконец, просто импортировал Pod вручную (перетащив необходимые файлы в мой проект), и это решило проблему.
26 байтов!..
, Поскольку URL подразумевает, это можно рассмотреть.. обман:
http://github.com/dbr/so_scripts/tree/master/golf_tdoc/cheating.bash
perl -MTemplate -e 'Template->new()->process("12dayxmas.tt")'
[% list = [ { day => 'first', item => 'A partridge in a pear tree.'}, { day => 'second', item => 'Two turtle doves, and '}, { day => 'third', item => 'Three french hens, '}, { day => 'fourth', item => 'Four calling birds, '}, { day => 'fifth', item => 'Five gold rings, '}, { day => 'sixth', item => 'Six geese a-laying, '}, { day => 'seventh', item => 'Seven swans a-swimming, '}, { day => 'eighth', item => 'Eight maids a-milking, '}, { day => 'nineth', item => 'Nine ladies dancing, '}, { day => 'tenth', item => 'Ten lords a-leaping, '}, { day => 'eleventh', item => 'Eleven pipers piping, '}, { day => 'twelfth', item => 'Twelve drummers drumming, '} ]; -%] [% FOREACH list; present = item _ present; -%] On the [% day %] day of Christmas my true love gave me [% present %] [% END %]
Я не могу победить версию Lisp, но это все еще забавно.
версия Дельфи:
procedure TheTwelfDaysOfChristmas(const AVerse: TStrings);
const
cPresentList : array[1..12] of string = (
'a partridge in a pear tree',
'two turtle doves, and ',
'three french hens, ',
'four calling birds, ',
'five gold rings, ',
'six geese a-laying, ',
'seven swans a-swimming, ',
'eigth maids a-milking, ',
'nine ladies dancing, ',
'ten lords a-leaping, ',
'eleven pipers piping, ',
'twelve drummers drumming, '
);
cTime : array[1..12] of string = (
'first',
'second',
'third',
'fourth',
'fifth',
'sixth',
'seventh',
'eighth',
'nineth',
'tenth',
'eleventh',
'twelfth'
);
var
present : string;
i : Integer;
begin
present := '';
for i := 1 to 12 do begin
present := cPresentList[i] + present;
AVerse.Add(Format('On the %s day of Christmas my true love gave me %s.',
[cTime[i], present]));
end;
end;
Между прочим, для всех Вас, С праздниками и большого программирования в 2009.
::-webkit-calendar-picker-indicator
класс для использования моего собственного изображения вместо треугольника?
– Ilan Biala
29 March 2015 в 14:12
Perl.
use Lingua::EN::Numbers qw(num2en_ordinal);
print 'On the ', num2en_ordinal($_+1),' day of Christmas my true love gave to me, ', reverse(( split /\|/, "a partridge in a pear tree.\n|two turtle doves, and |three french hens, |four calling birds, |five gold rings, |six geese a-laying, |seven swans a-swimming, |eight maids a-milking, |nine ladies dancing, |ten lords a leaping, |eleven pipers piping, |twelve drummers drumming, ")[ 0 .. $_ ]) for 0 .. 11;
(459 Символов)
Я хотел сделать это немного более хорошим и выразительным, но это - проблема гольфа.
Этот стиль нарушает надлежащие стандарты кодирования несколько. Но это - гольф для Вас.
Вот менее компактная версия с менее подлыми приемами.
use Lingua::EN::Numbers qw(num2en_ordinal);
my @gifts = (
'a partridge in a pear tree.',
'two turtle doves, and ',
'three french hens, ',
'four calling birds, ',
'five gold rings, ',
'six geese a-laying, ',
'seven swans a-swimming, ',
'eight maids a-milking, ',
'nine ladies dancing, ',
'ten lords a leaping, ',
'eleven pipers piping, ',
'twelve drummers drumming, '
);
for my $verse_id ( 0 .. $#gifts ) {
printf 'On the %s day of Christmas my true love gave to me, ', num2en_ordinal($verse_id +1);
print reverse @verse[ 0 .. $verse_id ];
print "\n";
}
PHP
$g = array("a partridge in a pear tree.\n",
"two turtle doves, and",
"three french hens,",
"four calling birds,",
"five gold rings,",
"six geese a-laying,",
"seven swans a-swimming,",
"eight maids a-milking,",
"nine ladies dancing,",
"ten lords a-leaping,",
"eleven pipers piping,",
"twelve drummers drumming,"
);
$d = array("first", "second", "third", "fourth", "fifth", "sixth",
"seventh", "eighth", "nineth", "tenth", "eleventh", "twelfth");
foreach($d as $i=>$v){
echo "On the $v day of Christmas my true love gave to me";
for($j=$i;$j>=0;$j--) echo " ",$g[$j];
}
Вот решение PHP:
$day = Array('first','second','third','fourth','fifth','sixth','seventh',
'eighth','ninth','tenth','eleventh','twelfth');
$gifts = Array('Twelve drummers drumming,',
'Eleven pipers piping,',
'Ten lords a-leaping,',
'Nine ladies dancing,',
'Eight maids a-milking,',
'Seven swans a-swimming,',
'Six geese a-laying,',
'FIVE GOLDEN RINGS,',
'Four calling birds,',
'Three French hens,',
'Two turtle doves, and',
'A partridge in a pear tree');
for ($i = 0; $i < 12; ++$i) {
printf("On the $day[$i] of Christmas my true love gave to me\n" .
implode("\n", array_slice($gifts,-($i+1))) . "\n\n");
}
Linq к объектам, в 580 символах (без пробела)
Console.WriteLine(Enumerable.Range(1, 13).SelectMany(day =>
Enumerable.Repeat("\nOn the " + day +
(day == 1 ? "st" :
(day == 2 ? "nd" :
(day == 3 ? "rd" :
"th"))) + " day of Christmas my true love gave to me ", 1)
.Concat((new []
{
"twelve drummers drumming,",
"eleven pipers piping,",
"ten lords a-leaping,",
"nine ladies dancing,",
"eight maids a-milking,",
"seven swans a-swimming,",
"six geese a-laying,",
"five gold rings,",
"four calling birds,",
"three french hens,",
"two turtle doves, and",
"a partridge in a pear tree."
}).Reverse().Take(day).Reverse()))
.Aggregate((a, b) => a + "\n" + b));
find
всегда должны быть векторами - столбцами, а также vec1(idx1)
и т.д.
– yuk
10 April 2013 в 17:51
Довольно простое решение в C++:
#include <iostream.h>
char*a[]={"a partridge in a pear tree.\n","two turtle doves, and","three french hens,","four calling birds,","five gold rings,","six geese a-laying,","seven swans a-swimming,","eight maids a-milking,","nine ladies dancing,","ten lords a-leaping,","eleven pipers piping,","twelve drummers drumming,"};
char*b[]={"first","second","third","fourth","fifth","sixth","seventh","eighth","nineth","tenth","eleventh", "twelfth"};
int main(){for(int i=0;i<12;i++){std::cout<<"On the "<<b[i]<<" day of Christmas my true love gave to me, \n";for(int j=i;j>=0;j--)std::cout<<a[j]<<" \n";}}
595 символов, хотя это могло быть уменьшено до 513 символов, если Вы позволяете "1-й, 2-й, 3-й" и т.д. нотация, которую некоторые использовали.
Версия C/C++ с помощью единственной буферной и адресной арифметики с указателями. Сингл включает, одно объявление и технически только две строки кода в основном, чтобы сделать печать:
#include <stdio.h>
char *days =
"twelve drummers drumming, \n"
"eleven pipers piping, \n"
"ten lords a-leaping, \n"
"nine ladies dancing, \n"
"eight maids a-milking, \n"
"seven swans a-swimming, \n"
"six geese a-laying, \n"
"five gold rings, \n"
"four calling birds, \n"
"three french hens, \n"
"two turtle doves, and \n"
"a partridge in a pear tree.\n\n";
void main()
{
for (int i = 1; i <= 12; i++)
printf("On the %d%s day of Christmas, my true love gave to me:\n%s",
i,i == 1 ? "st" : (i == 2 ? "nd" : "th"), days + (12-i)*28);
}
-functions
опция и выполнить отдельную функцию путем передачи его командной строке. Это повреждается, если qExec назовут несколько раз, то так как только первый вызов обработает параметры командной строки.
– Aurélien Gâteau
13 July 2016 в 07:47
C#: 395 символов (не включая пробел...)
for (var x = 0; x++ < 12; )
Console.Write(
"On the {0} day of Christmas,\nMy true love gave to me\n{1}\n\n",
x + (x < 2 ? "st" : x < 3 ? "nd" : x < 4 ? "rd" : "th"),
String.Join(
"\n",
"a partridge in a pear tree.|turtle doves and|french hens|calling birds|gold rings|geese a-laying|swans a-swimming|maids a-milking|ladies dancing|lords a-leaping|pipers piping|drummers drumming"
.Split('|').Take(x).Select((y, i) => (i > 0 ? (i + 1) + " " : "") + y).Reverse().ToArray()
)
);
Вот erlang версия (~586 символов):
-module (xmas).
-export ([xmas/0]).
xmas() ->
W = ["twelve drummers drumming, ",
"eleven pipers piping, ",
"ten lords a-leaping, ",
"nine ladies dancing, ",
"eight maids a-milking, ",
"seven swans a-swimming, ",
"six geese a-laying, ",
"five gold rings, ",
"four calling birds, ",
"three french hens, ",
"two turtle doves, and ",
"a partridge in a pear tree."],
io:format(lists:foldl(
fun(X,Acc) -> Acc ++ X ++ "~n" end, "",
["On the " ++ day_str(Q) ++
" day of Christmas, my true love gave me " ++
lists:foldl(
fun(X,Acc)-> Acc++X end,
"", lists:nthtail(12-Q,W)) ||
Q <- lists:seq(1,12)]),[]).
day_str(Q) ->
case Q of
1 -> "1st";
2 -> "2nd";
3 -> "3rd";
N -> erlang:integer_to_list(N,10) ++ "th"
end.
LUA 540 (без вкладок & возвраты)
t={"twelve drummers drumming,","eleven pipers piping,","ten lords a-leaping,","nine ladies dancing,","eight maids a-milking,","seven swans a-swimming,","six geese a-laying,","five gold rings,","four calling birds,","three french hens,","two turtle doves, and","a partridge in a pear tree."}
f=function(i)
r=i.."th"
if (i==1) then r=i.."st"
elseif (i==2) then r=i.."nd"
elseif (i==3) then r=i.."rd"
end
return r
end
for i=1,12 do
s="On the "..f(i).." day of Christmas my true love gave to me"
for j=13-i,12 do
s=s.." "..t[j]
end
print(s)
end
, К сожалению, у нас нет строки к функции массива или способу сделать "сначала" через библиотеку даты. Достигает правильно телефона http://www.lua.org/cgi-bin/demo
(443 включая дополнительные новые строки)
print """
eJzlk91xxCAMhN9TxRZwSRMp4GpQjGw04ccDunOu+wjcgMkkk8vlxRjQst9q4JygnjFLqQpHN+QZ
r75I1UgV8QYtF0bIV8ZC9tGMyCCsVLSIWxiS2pSpWCnzy9N5P7HylJM7fqRuGXopGhjOtuoJZPID
RuqljPh4E2MunCYPz8mMvmw9Z1P5496tHhOFIGnBm2E38+/kkXkIR9o8B4diQGbz03xVPkb4rBwL
c7X79hzoZlCnX2DmK6ch6iZA3ShV466bxNjJ7yINy6J+JE0XIJK4liZKeN/D3HPIJIlHMrZ6BHLC
1URp6tR/MbiO3VQrt7XSAwamtUM/TDM4jL7cXYFVVi61DR38sbukG4fr0GvZFXDlEmPrU//Z8/+j
/n0CsHRGTA==
""".decode("base64").decode("zlib")
«Настало время! (И весьма уместно, учитывая, что LilyPond в основном используется для набора музыки ... Этот код можно легко адаптировать для создания нот к песне в дополнение к тексту.)
Адаптировано из решения fizzer.
#(map(lambda(x)(format #t"On the ~:R day of Christmas my true love gave to me~{ ~R~:*~[~;~;turtle doves and~;French hens,~;calling birds,~;gold rings,~;geese a-laying,~;swans a-swimming,~;maids a-milking,~;ladies dancing,~;lords a-leaping,~;pipers piping,~;drummers drumming,~]~} a partridge in a pear tree.
"x(iota(1- x)x -1)))(iota 12 1))
Использование : $ lilypond thisfile.ly
Эта версия, состоящая из 341 символа, точно соответствует выводу fizzer, но на три байта короче :
#(map(lambda(x)(format #t"On the ~:R day of Christmas my true love gave to me~{
~R ~:*~[~;~;turtle doves and~;french hens,~;calling birds,~;gold rings,~;geese a-laying,~;swans a-swimming,~;maids a-milking,~;ladies dancing,~;lords a-leaping,~;pipers piping,~;drummers drumming,~]~}
a partridge in a pear tree
"x(iota(1- x)x -1)))(iota 12 1))
Это не победит, но вот моя версия Java (компилируемая и запускаемая) в 576 символов.
class T{enum D{first,second,third,fourth,fifth,sixth,seventh,eighth,ninth,tenth,eleventh,twelfth}public static void main(String[] args){String o="",s="s, ",i="ing, ";String t[]={"a partridge in a pear tree","two turtle doves, and ","three french hen"+s,"four calling bird"+s,"five gold ring"+s,"six geese a-lay"+i,"seven swans a-swimm"+i,"eight maids a-milk"+i,"nine ladies danc"+i,"ten lords a-leap"+i,"eleven pipers pip"+i,"twelve drummers drumm"+i};int j=0;while(j<12)System.out.println("On the "+D.values()[j]+" day of Christmas my true love gave to me "+(o=t[j++]+o));}}
idx1
вектор (doesn' t имеют значение, если строка или столбец), еслиvec1
вектор - строка тогдаvec1(idx1)
, также будет вектор - строка. То же идет дляvec2
. – Eitan T 10 April 2013 в 18:12