Странная языковая особенность

Из эмпирического тестирования кажется, что max() и min() в списке вернут первое в списке, которое соответствует max() / min() в случае связи:

>>> test = [(1, "a"), (1, "b"), (2, "c"), (2, "d")]
>>> max(test, key=lambda x: x[0])
(2, 'c')
>>> test = [(1, "a"), (1, "b"), (2, "d"), (2, "c")]
>>> max(test, key=lambda x: x[0])
(2, 'd')
>>> min(test, key=lambda x: x[0])
(1, 'a')
>>> test = [(1, "b"), (1, "a"), (2, "d"), (2, "c")]
>>> min(test, key=lambda x: x[0])
(1, 'b')

И Отличное слежение Джереми подтверждает, что это действительно так.

975
задан 22 revs, 8 users 38% 26 September 2011 в 15:40
поделиться

285 ответов

Вы можете бросить все, что бросается на Java.

class YourBoss extends Throwable {
}
public class Main{
  public void main(String[] s) throws YourBoss {
   try{
    throw new YourBoss();
   }catch(Exception e){
   }catch(Error e){
   }
  }
}
-12
ответ дан 22 November 2019 в 20:53
поделиться

Я бы определенно оказал Перлу честь иметь несколько ужасных примеров:

if(!$#var)

или

if($mystring =~ m/(\d+)/) {
-7
ответ дан 22 November 2019 в 20:53
поделиться

Перл.

распечатать "Foo\n", если только $foo;

.
-4
ответ дан 22 November 2019 в 20:53
поделиться

либо в java (это если утверждение приводит к присвоению)

result = (Boolean condition) ? (if Boolean is true) : (if Boolean is false);

, либо

data Nat = Z|S Nat deriving Show
nattoInt Z = 0
nattoInt (S a) = 1 + nattoInt a

buildNat 0 = Z
buildNat a  =  S (buildNat (a - 1))

в Haskell... Я до сих пор не совсем понимаю, как это определяет натуральные числа (я прекрасно понимаю ТЕОРИЮ :-p)

.
-6
ответ дан 22 November 2019 в 20:53
поделиться
[

]Сегодня на всех языках:[

] [
TypeA a = (TypeA)some_operation_returning_TypeB(1,2,3); // TypeB is not inheriting TypeA
] [

]не работает во время выполнения с сообщением (или подобным) "Cast to TypeA failed exception". Это говорит нам о том, насколько ленивы на самом деле программисты. Они никак не могут выдать сообщение "Не удалось присвоить переменной 'a' типаA значение 'some_operation_returning_TypeB(1,2,3)' типаB". Нееееет... их девиз - "Твой, кто делает ошибки, должен страдать"[

].
-3
ответ дан 22 November 2019 в 20:53
поделиться
[

] вот мои 2 цента. На c++: [

] [
int* t = new int(15);
delete t;
]
-8
ответ дан 22 November 2019 в 20:53
поделиться
[

]В c++[

] [
const char* wtf()
{
    char buf[100];
    return buf;
}
string s = ... + wtf() + ...;
] [

]создает интересные значения в s. Частично строка, частично содержимое стека, смешанное с нулями, так что s.length()!=strlen(s.c_str()). Самое странное, что у компилятора нет абсолютно никаких проблем с возвращением указателей в стек - рука программиста компилятора, наверное, отвалилась бы, если бы он добавил туда предупреждение.[

].
-7
ответ дан 22 November 2019 в 20:53
поделиться

Я нахожу любовь Javascript Date Object к 110 году восхитительной... Попробуйте.

<Script language ="JavaScript">
<!--
var now = new Date()
var dia = now.getDay()
var mes = now.getMonth()
var fecha

//Day of the week
if(dia==0){
 fecha="Domingo, ";
}else if(dia==1){
 fecha="Lunes, ";
}else if(dia==2){
 fecha="Martes, ";
}else if(dia==3){
 fecha="Miércoles, ";
}else if(dia==4){
 fecha="Jueves, ";
}else if(dia==5){
 fecha="Viernes, ";
}else{
 fecha="Sábado, ";
}

fecha = fecha + now.getDate() + " de "
//Which month is it?
if(mes==0){
 fecha=fecha + "Enero"
}else if(mes==1){
 fecha=fecha + "Febrero"
}else if(mes==2){
 fecha=fecha + "Marzo"
}else if(mes==3){
 fecha=fecha + "Abril"
}else if(mes==4){
 fecha=fecha + "Mayo"
}else if(mes==5){
 fecha=fecha + "Junio"
}else if(mes==6){
 fecha=fecha + "Julio"
}else if(mes==7){
 fecha=fecha + "Agosto"
}else if(mes==8){
 fecha=fecha + "Septiembre"
}else if(mes==9){
 fecha=fecha + "Octubre"
}else if(mes==10){
 fecha=fecha + "Noviembre"
}else{
 fecha=fecha + "Diciembre"
}

//Year
fecha = fecha + " del " + now.getYear()

document.write(fecha);
//-->
</Script>

Сценарий на испанском - извините, если вы не понимаете код... Идея в том, чтобы вы увидели результат 110 года.

-3
ответ дан 22 November 2019 в 20:53
поделиться

Другая альтернатива состоит в том, чтобы иметь представление контейнера, которое добавляется в зависимости от того, какой taureView является текущим в качестве подвида. Можно даже указать, что каждая таблица находится в другом контроллере ракурса, чтобы не разделять вещи, создав контроллеры ракурса табличного ракурса, а затем добавив .view в качестве подвида контейнера, но если вы это сделаете, вам придется вручную вызвать viewWillAppean и viewWillDisapear (что не очень сложно, так как вы просто называете их при замене таблиц при касании сегментированного элемента управления).

-121--2910278-

Android не предоставляет пути изменить языковой стандарт приложения; это делается на общесистемном уровне.

Что я полагаю имеет больше смысла, чем необходимость устанавливать язык в нескольких отдельных приложениях.

Edit, 2010-03-09:
Видимо, я ошибаюсь в этом не быть возможным для каждого приложения.

Вот вопрос, показывающий, что вы можете изменить языковой стандарт - очевидно, для каждого действия. В этом случае необходимо вручную выполнить ротацию экрана и другие изменения конфигурации, поскольку в противном случае Операция будет перезапущена и при каких-либо изменениях вернется к исходной конфигурации .
Изменение языкового стандарта в самом приложении
Android - принудительный языковой стандарт сбрасывается при изменении ориентации

-121--3391017-

В Python каждая последовательность содержит пустую последовательность.

answer = input("Enter 'Y[es] or N[o]:")
if answer in 'YyNn':        # verify input
    process(answer) 

Просто нажимая на возврат в приведенном выше запросе, установите ответ в значение null последовательности, передайте , если ответ в... и обрабатываться как правильный ответ. Говоря более кратко:

>>> "ABCDEFGHIJ".__contains__("")
True

Как обычно, поведение Питона здесь математически и логически безупречно. Как я помню из давнего класса в теории набора: Пустой набор является членом каждого набора.

Это все еще удивительно в тех нескольких случаях, когда я был укушен этим, но я бы не имел этого по-другому.

-3
ответ дан 22 November 2019 в 20:53
поделиться

Лучше всего показать вход в конкурс Perl Perl Perl в 2000 году:

#:: ::-| ::-| .-. :||-:: 0-| .-| ::||-| .:|-. :||
open(Q,$0);while(<Q>){if(/^#(.*)$/){for(split('-',$1)){$q=0;for(split){s/\|
/:.:/xg;s/:/../g;$Q=$_?length:$_;$q+=$q?$Q:$Q*20;}print chr($q);}}}print"\n";
#.: ::||-| .||-| :|||-| ::||-| ||-:: :|||-| .:|

Код полностью объяснен его автором в http://mysite.verizon.net/les.peters /id2.html

-4
ответ дан 22 November 2019 в 20:53
поделиться

Не в стандартном контексте безопасности.

Если у вас есть ситуация, когда у вас возникли повышенные права безопасности (например, внутри пользовательского расширения браузера), то может стать возможным.

-121--1134656-

в JavaScript:

2 == [2]

// даже незнакомец 2 == [[[[[[2]]]

// и вниз-правый орех var a = {"abc": 1}; [[[[«ABC»]]]] === A [«ABC»]; // Это также верно

, к счастью, добрые люди в Stackoverflow.com объяснили все это: http: /stackoverflow.com/questions/1724255/why-does-2-in-javascript

​​
-7
ответ дан 22 November 2019 в 20:53
поделиться

Тот факт, что в C ++ нет инкапсуляции (или Java). Любой объект может нарушать инкапсуляцию любого другого объекта, беспорядок с его личными данными, если это тот же тип. Например:

#include <iostream>
using namespace std;

class X
{
  public:
    // Construct by passing internal value
    X (int i) : i (i) {}

    // This breaks encapsulation
    void violate (X & other)
    {
        other.i += i;
    }

    int get () { return i; }

  private:
    int i;
};

int main (int ac, char * av[])
{
    X a(1), b(2), c(3);

    a.violate (c);
    b.violate (c);
    cout << c.get() << endl;    // "6"
}
-4
ответ дан 22 November 2019 в 20:53
поделиться

В MOD_REWRITE

RewriteRule ^([a-zA-Z0-9_-]+)\.php$ $1/ [R,NC]
RewriteRule ^([a-zA-Z0-9_-]+)/$ $1\.php [NC,L]

вызовет:

"file.php > file > file.php > file > file.php > file >  ..."

И наконец:

Error 500 Too Many Redirects

(В общем, я считаю, что редактирование файлов .htaccess так же утомительно, как построение правильно функционирующего регулярного выражения.)

-3
ответ дан 22 November 2019 в 20:53
поделиться

PHP

$ php -r '::'
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM

WTF? http://en.wikipedia.org/wiki/Scope_resolution_operator

Почему бы не сказать неожиданный T_SCOPE_RESOLUTION_OPERATOR ?

-3
ответ дан 22 November 2019 в 20:53
поделиться

JavaScript:

( {} == {} ) == false
-7
ответ дан 22 November 2019 в 20:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: