169 похожих чатов

Возможно, такой вопрос уже завали. Есть в питоне такая конструкция:

var = set(num for num in range(1, modulo) if gcd(num, modulo) ==1). Есть ли в Котлин такая возможность, прохождение по последовательности и запись некоторых данных, которые подходят по условию?

16 ответов

10 просмотров

var = (1..modulo).filter { number → gcd(number, modulo) == 1 }

(1..modulo).filter { gcd(it, modulo) == 1 }

Пояснение. Collection comprehension в питоне от бедности. Там для того, чтобы оно работало не бесконечно долго, надо делать языковую конструкцию, которая два действия в одно разворачивает. В котлин для этого достаточно операций на коллекциях и последовательностях.

Alexander Nozik
Пояснение. Collection comprehension в питоне от бе...

видимо offtopic, но.. Какие "два действия" имелись в виду? И почему иначе было бы бесконечно долго?

Nikita
видимо offtopic, но.. Какие "два действия" имелись...

Фильтрация и применение. Стандартный питон - это интерпретатор, поэтому там нет оптимизации внутренности циклов. Ну и кроме того, надо два раза проходиться по коллекции.

Alexander Nozik
Фильтрация и применение. Стандартный питон - это и...

так в котлине фильтрация и маппинг коллекций — тоже отдельные действия (и отдельные циклы) А синтаксис comprehensions за счёт чего улучшает ситуацию?

Nikita
так в котлине фильтрация и маппинг коллекций — тож...

Во-первых есть Sequence, где действия склеиваются, во-вторых в котлин мы можем спокойно вставить if в цикл и это будет выглядеть не сильно хуже, чем filter/reduce. Оно скомпилируется один раз и заоптимизируется

Alexander Nozik
Во-первых есть Sequence, где действия склеиваются,...

А comprehension-то как на это влияет? Я не понимаю связи всех ваших утверждений :(

Nikita
А comprehension-то как на это влияет? Я не понимаю...

Тем, что он не нужен. Нигде кроме питона в нем нет смысла

Alexander Nozik
Тем, что он не нужен. Нигде кроме питона в нем нет...

но взяли его из Haskell.. (ладно, я не знаю, мб в хаскеле он совсем другой смысл несёт) Получается так: он делает всё то же, что конструкции, которые нужны, только не нужен. Непонятно

Nikita
но взяли его из Haskell.. (ладно, я не знаю, мб в ...

Проблема collection comperhension в том, что он страшный. Фильтр слева, действие справа, переменная посередине. Это не фича, это баг.

Alexander Nozik
Проблема collection comperhension в том, что он ст...

а. Так понятно. Но это уже вкусовщина

Nikita
но взяли его из Haskell.. (ладно, я не знаю, мб в ...

Не совсем правда! В хаскелле стандарт - это map, filter, reduce.

Nikita
а. Так понятно. Но это уже вкусовщина

Если обсуждать не как оно устроено, а почему, то нет, не вкусовщина. В питоне оно так, потому что никак по другому не получалось. Это ограничение.

Nikita
а. Так понятно. Но это уже вкусовщина

Можно так все решения по дизайну Котлина принять как вкусовщину.

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

Обсуждают сегодня

лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
#include <stdio.h> #include <stdlib.h> #include <time.h> int** generate_table(int size_matrix) { int** matrix = (int**)malloc(size_matrix * sizeof(int*)); for (int i ...
Чувак
1
Яндекс маршрутизатор кто-нибудь использовал с своих проектах, чтоб через него маршруты составить/посчитать? Насколько простой/муторный сервис?
Dreamer_0x01 VeseloV
7
У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
В связи с "политическим дембелем" ms office кто нибудь пробовал работать с чем то импортозамещенным? Например, Р7. Т. е. задача открыть "импортозамещенный" шаблон, что то в н...
Alex
5
Карта сайта