Пашок🗽
Где-то плачет один питон. Область видимости и возможность передать неанонимную функцию
область видимости решается {} , и функции реализованы интерфейсом Function<K,T...>
Andrii
ой, можешь какой-нибудь кусочек кода показать и сказать, что он делает? жутко интересно посмотреть
Ну я только учусь... Но транспонирование матрицы вышло так _by_matrix : ℕ → ℕ → Set n by m matrix = 𝕍 (𝕍 ℕ m) n _by_matrix-of_ : ∀ {ℓ} → ℕ → ℕ → (Set ℓ) → Set ℓ n by m matrix-of A = 𝕍 (𝕍 A m) n matrix-element : ∀ {ℓ} {A : Set ℓ} {n m : ℕ} (i j : ℕ) → i < n ≡ tt → j < m ≡ tt → n by m matrix-of A → A matrix-element i j pᵢ pⱼ V = nth𝕍 j pⱼ (nth𝕍 i pᵢ V) testM : 2 by 3 matrix testM = (1 :: 2 :: 3 :: []) :: (4 :: 5 :: 6 :: []) :: [] zero-vector : (n : ℕ) → 𝕍 ℕ n zero-vector 0 = [] zero-vector (suc n) = 0 :: zero-vector n zero-matrix : (n m : ℕ) → n by m matrix zero-matrix 0 m = [] zero-matrix (suc n) m = (zero-vector m) :: (zero-matrix n m) matrix-elt : {n m : ℕ} (i j : ℕ) → i < n ≡ tt → j < m ≡ tt → n by m matrix → ℕ matrix-elt i j pᵢ pⱼ V = nth𝕍 j pⱼ (nth𝕍 i pᵢ V) d-helper : (n : ℕ) (i : ℕ) → ℕ → 𝕍 ℕ n d-helper 0 _ _ = [] d-helper (suc n) i d = (if n =ℕ i then d else 0) :: d-helper n i d diagonal-matrix-h : (d n i : ℕ) → i by n matrix diagonal-matrix-h d n 0 = [] diagonal-matrix-h d n (suc i) = d-helper n i d :: diagonal-matrix-h d n i diagonal-matrix : (d n : ℕ) → n by n matrix diagonal-matrix d n = diagonal-matrix-h d n n identity-matrix : (n : ℕ)→ n by n matrix identity-matrix n = diagonal-matrix 1 n get-column : ∀ {n m : ℕ} (j : ℕ) → j < m ≡ tt → n by m matrix → 𝕍 ℕ n get-column j p [] = [] get-column j p (row :: rows) = nth𝕍 j p row :: get-column j p rows <-suc' : ∀ {j m : ℕ} → suc j < m ≡ tt → j < m ≡ tt <-suc' {0} {suc m} p = refl <-suc' {suc j} {suc m} p = <-suc' {j} {m} p suc-h : ∀ (j m' : ℕ) → suc (j + m') ≡ j + suc m' suc-h zero m' = refl suc-h (suc j) m' rewrite suc-h j m' = refl <-add : ∀ (j m' m : ℕ) → j + m' < m ≡ tt → m' < m ≡ tt <-add zero m' m p = p <-add (suc j) m' m p = <-add j m' m (<-suc' {j + m'} {m} p) less-less-h : ∀ (j m' m : ℕ) → j + suc m' < m ≡ tt → m' < m ≡ tt less-less-h j m' m p = <-suc' {m'} {m} (<-add j (suc m') m p) transpose-h : ∀ {n m : ℕ} (m' j : ℕ) → j + m' < m ≡ tt → n by m matrix → suc j by n matrix transpose-h {n} {m} m' 0 p M = get-column {n} {m} m' p M :: [] transpose-h {n} {m} m' (suc j) p M rewrite suc-h j m' = get-column {n} {m} m' (less-less-h j m' m p) M :: transpose-h {n} {m} (suc m') j p M gg : ∀ {m : ℕ} → m + 0 < suc m ≡ tt gg {m} rewrite +0 m = <-suc m transpose : ∀ {n m : ℕ} → n by m matrix → m by n matrix transpose {n} {0} M = [] transpose {n} {suc m} M = transpose-h {n} {suc m} 0 m (gg {m}) M <-add : ∀ (j m' m : ℕ) → j + m' < m ≡ tt → m' < m ≡ tt <-add zero m' m p = p <-add (suc j) m' m p = <-add j m' m (<-suc' {j + m'} {m} p) less-less-h : ∀ (j m' m : ℕ) → j + suc m' < m ≡ tt → m' < m ≡ tt less-less-h j m' m p = <-suc' {m'} {m} (<-add j (suc m') m p) transpose-h : ∀ {n m : ℕ} (m' j : ℕ) → j + m' < m ≡ tt → n by m matrix → suc j by n matrix transpose-h {n} {m} m' 0 p M = get-column {n} {m} m' p M :: [] transpose-h {n} {m} m' (suc j) p M rewrite suc-h j m' = get-column {n} {m} m' (less-less-h j m' m p) M :: transpose-h {n} {m} (suc m') j p M gg : ∀ {m : ℕ} → m + 0 < suc m ≡ tt gg {m} rewrite +0 m = <-suc m transpose : ∀ {n m : ℕ} → n by m matrix → m by n matrix transpose {n} {0} M = [] transpose {n} {suc m} M = transpose-h {n} {suc m} 0 m (gg {m}) M
Vladislav
Ну я только учусь... Но транспонирование матрицы вышло так _by_matrix : ℕ → ℕ → Set n by m matrix = 𝕍 (𝕍 ℕ m) n _by_matrix-of_ : ∀ {ℓ} → ℕ → ℕ → (Set ℓ) → Set ℓ n by m matrix-of A = 𝕍 (𝕍 A m) n matrix-element : ∀ {ℓ} {A : Set ℓ} {n m : ℕ} (i j : ℕ) → i < n ≡ tt → j < m ≡ tt → n by m matrix-of A → A matrix-element i j pᵢ pⱼ V = nth𝕍 j pⱼ (nth𝕍 i pᵢ V) testM : 2 by 3 matrix testM = (1 :: 2 :: 3 :: []) :: (4 :: 5 :: 6 :: []) :: [] zero-vector : (n : ℕ) → 𝕍 ℕ n zero-vector 0 = [] zero-vector (suc n) = 0 :: zero-vector n zero-matrix : (n m : ℕ) → n by m matrix zero-matrix 0 m = [] zero-matrix (suc n) m = (zero-vector m) :: (zero-matrix n m) matrix-elt : {n m : ℕ} (i j : ℕ) → i < n ≡ tt → j < m ≡ tt → n by m matrix → ℕ matrix-elt i j pᵢ pⱼ V = nth𝕍 j pⱼ (nth𝕍 i pᵢ V) d-helper : (n : ℕ) (i : ℕ) → ℕ → 𝕍 ℕ n d-helper 0 _ _ = [] d-helper (suc n) i d = (if n =ℕ i then d else 0) :: d-helper n i d diagonal-matrix-h : (d n i : ℕ) → i by n matrix diagonal-matrix-h d n 0 = [] diagonal-matrix-h d n (suc i) = d-helper n i d :: diagonal-matrix-h d n i diagonal-matrix : (d n : ℕ) → n by n matrix diagonal-matrix d n = diagonal-matrix-h d n n identity-matrix : (n : ℕ)→ n by n matrix identity-matrix n = diagonal-matrix 1 n get-column : ∀ {n m : ℕ} (j : ℕ) → j < m ≡ tt → n by m matrix → 𝕍 ℕ n get-column j p [] = [] get-column j p (row :: rows) = nth𝕍 j p row :: get-column j p rows <-suc' : ∀ {j m : ℕ} → suc j < m ≡ tt → j < m ≡ tt <-suc' {0} {suc m} p = refl <-suc' {suc j} {suc m} p = <-suc' {j} {m} p suc-h : ∀ (j m' : ℕ) → suc (j + m') ≡ j + suc m' suc-h zero m' = refl suc-h (suc j) m' rewrite suc-h j m' = refl <-add : ∀ (j m' m : ℕ) → j + m' < m ≡ tt → m' < m ≡ tt <-add zero m' m p = p <-add (suc j) m' m p = <-add j m' m (<-suc' {j + m'} {m} p) less-less-h : ∀ (j m' m : ℕ) → j + suc m' < m ≡ tt → m' < m ≡ tt less-less-h j m' m p = <-suc' {m'} {m} (<-add j (suc m') m p) transpose-h : ∀ {n m : ℕ} (m' j : ℕ) → j + m' < m ≡ tt → n by m matrix → suc j by n matrix transpose-h {n} {m} m' 0 p M = get-column {n} {m} m' p M :: [] transpose-h {n} {m} m' (suc j) p M rewrite suc-h j m' = get-column {n} {m} m' (less-less-h j m' m p) M :: transpose-h {n} {m} (suc m') j p M gg : ∀ {m : ℕ} → m + 0 < suc m ≡ tt gg {m} rewrite +0 m = <-suc m transpose : ∀ {n m : ℕ} → n by m matrix → m by n matrix transpose {n} {0} M = [] transpose {n} {suc m} M = transpose-h {n} {suc m} 0 m (gg {m}) M <-add : ∀ (j m' m : ℕ) → j + m' < m ≡ tt → m' < m ≡ tt <-add zero m' m p = p <-add (suc j) m' m p = <-add j m' m (<-suc' {j + m'} {m} p) less-less-h : ∀ (j m' m : ℕ) → j + suc m' < m ≡ tt → m' < m ≡ tt less-less-h j m' m p = <-suc' {m'} {m} (<-add j (suc m') m p) transpose-h : ∀ {n m : ℕ} (m' j : ℕ) → j + m' < m ≡ tt → n by m matrix → suc j by n matrix transpose-h {n} {m} m' 0 p M = get-column {n} {m} m' p M :: [] transpose-h {n} {m} m' (suc j) p M rewrite suc-h j m' = get-column {n} {m} m' (less-less-h j m' m p) M :: transpose-h {n} {m} (suc m') j p M gg : ∀ {m : ℕ} → m + 0 < suc m ≡ tt gg {m} rewrite +0 m = <-suc m transpose : ∀ {n m : ℕ} → n by m matrix → m by n matrix transpose {n} {0} M = [] transpose {n} {suc m} M = transpose-h {n} {suc m} 0 m (gg {m}) M
Это от чего кусочек! От Сатурна?
Andrii
Это от чего кусочек! От Сатурна?
На Agda просили исходник
giorgio
Ну я только учусь... Но транспонирование матрицы вышло так _by_matrix : ℕ → ℕ → Set n by m matrix = 𝕍 (𝕍 ℕ m) n _by_matrix-of_ : ∀ {ℓ} → ℕ → ℕ → (Set ℓ) → Set ℓ n by m matrix-of A = 𝕍 (𝕍 A m) n matrix-element : ∀ {ℓ} {A : Set ℓ} {n m : ℕ} (i j : ℕ) → i < n ≡ tt → j < m ≡ tt → n by m matrix-of A → A matrix-element i j pᵢ pⱼ V = nth𝕍 j pⱼ (nth𝕍 i pᵢ V) testM : 2 by 3 matrix testM = (1 :: 2 :: 3 :: []) :: (4 :: 5 :: 6 :: []) :: [] zero-vector : (n : ℕ) → 𝕍 ℕ n zero-vector 0 = [] zero-vector (suc n) = 0 :: zero-vector n zero-matrix : (n m : ℕ) → n by m matrix zero-matrix 0 m = [] zero-matrix (suc n) m = (zero-vector m) :: (zero-matrix n m) matrix-elt : {n m : ℕ} (i j : ℕ) → i < n ≡ tt → j < m ≡ tt → n by m matrix → ℕ matrix-elt i j pᵢ pⱼ V = nth𝕍 j pⱼ (nth𝕍 i pᵢ V) d-helper : (n : ℕ) (i : ℕ) → ℕ → 𝕍 ℕ n d-helper 0 _ _ = [] d-helper (suc n) i d = (if n =ℕ i then d else 0) :: d-helper n i d diagonal-matrix-h : (d n i : ℕ) → i by n matrix diagonal-matrix-h d n 0 = [] diagonal-matrix-h d n (suc i) = d-helper n i d :: diagonal-matrix-h d n i diagonal-matrix : (d n : ℕ) → n by n matrix diagonal-matrix d n = diagonal-matrix-h d n n identity-matrix : (n : ℕ)→ n by n matrix identity-matrix n = diagonal-matrix 1 n get-column : ∀ {n m : ℕ} (j : ℕ) → j < m ≡ tt → n by m matrix → 𝕍 ℕ n get-column j p [] = [] get-column j p (row :: rows) = nth𝕍 j p row :: get-column j p rows <-suc' : ∀ {j m : ℕ} → suc j < m ≡ tt → j < m ≡ tt <-suc' {0} {suc m} p = refl <-suc' {suc j} {suc m} p = <-suc' {j} {m} p suc-h : ∀ (j m' : ℕ) → suc (j + m') ≡ j + suc m' suc-h zero m' = refl suc-h (suc j) m' rewrite suc-h j m' = refl <-add : ∀ (j m' m : ℕ) → j + m' < m ≡ tt → m' < m ≡ tt <-add zero m' m p = p <-add (suc j) m' m p = <-add j m' m (<-suc' {j + m'} {m} p) less-less-h : ∀ (j m' m : ℕ) → j + suc m' < m ≡ tt → m' < m ≡ tt less-less-h j m' m p = <-suc' {m'} {m} (<-add j (suc m') m p) transpose-h : ∀ {n m : ℕ} (m' j : ℕ) → j + m' < m ≡ tt → n by m matrix → suc j by n matrix transpose-h {n} {m} m' 0 p M = get-column {n} {m} m' p M :: [] transpose-h {n} {m} m' (suc j) p M rewrite suc-h j m' = get-column {n} {m} m' (less-less-h j m' m p) M :: transpose-h {n} {m} (suc m') j p M gg : ∀ {m : ℕ} → m + 0 < suc m ≡ tt gg {m} rewrite +0 m = <-suc m transpose : ∀ {n m : ℕ} → n by m matrix → m by n matrix transpose {n} {0} M = [] transpose {n} {suc m} M = transpose-h {n} {suc m} 0 m (gg {m}) M <-add : ∀ (j m' m : ℕ) → j + m' < m ≡ tt → m' < m ≡ tt <-add zero m' m p = p <-add (suc j) m' m p = <-add j m' m (<-suc' {j + m'} {m} p) less-less-h : ∀ (j m' m : ℕ) → j + suc m' < m ≡ tt → m' < m ≡ tt less-less-h j m' m p = <-suc' {m'} {m} (<-add j (suc m') m p) transpose-h : ∀ {n m : ℕ} (m' j : ℕ) → j + m' < m ≡ tt → n by m matrix → suc j by n matrix transpose-h {n} {m} m' 0 p M = get-column {n} {m} m' p M :: [] transpose-h {n} {m} m' (suc j) p M rewrite suc-h j m' = get-column {n} {m} m' (less-less-h j m' m p) M :: transpose-h {n} {m} (suc m') j p M gg : ∀ {m : ℕ} → m + 0 < suc m ≡ tt gg {m} rewrite +0 m = <-suc m transpose : ∀ {n m : ℕ} → n by m matrix → m by n matrix transpose {n} {0} M = [] transpose {n} {suc m} M = transpose-h {n} {suc m} 0 m (gg {m}) M
выглядит прикольно, сейчас в доки запрыгну и попытаюсь понять, что происходит
Vladislav
На Agda просили исходник
Какой синтаксис необычный
Andrii
Какой синтаксис необычный
Ну... просто к Haskell прикрутили зависимые типы
Andrii
Большая часть кода там просто доказательство того, что транспонирование матрицы возможно :)
Vladislav
Это страшно, но прикольно. А где это Agada используется?
Andrii
Это страшно, но прикольно. А где это Agada используется?
Формализация математика, верифицированый код
Vladislav
Ничто из этого не знаю. Я спать. Всем пока
Andrii
Опять же, Agda не Тьюринг полный язык, там структурная рекурсия допускается только с уменьшением одного из параметров, что гарантирует завершение.
Erik
Ну я только учусь... Но транспонирование матрицы вышло так _by_matrix : ℕ → ℕ → Set n by m matrix = 𝕍 (𝕍 ℕ m) n _by_matrix-of_ : ∀ {ℓ} → ℕ → ℕ → (Set ℓ) → Set ℓ n by m matrix-of A = 𝕍 (𝕍 A m) n matrix-element : ∀ {ℓ} {A : Set ℓ} {n m : ℕ} (i j : ℕ) → i < n ≡ tt → j < m ≡ tt → n by m matrix-of A → A matrix-element i j pᵢ pⱼ V = nth𝕍 j pⱼ (nth𝕍 i pᵢ V) testM : 2 by 3 matrix testM = (1 :: 2 :: 3 :: []) :: (4 :: 5 :: 6 :: []) :: [] zero-vector : (n : ℕ) → 𝕍 ℕ n zero-vector 0 = [] zero-vector (suc n) = 0 :: zero-vector n zero-matrix : (n m : ℕ) → n by m matrix zero-matrix 0 m = [] zero-matrix (suc n) m = (zero-vector m) :: (zero-matrix n m) matrix-elt : {n m : ℕ} (i j : ℕ) → i < n ≡ tt → j < m ≡ tt → n by m matrix → ℕ matrix-elt i j pᵢ pⱼ V = nth𝕍 j pⱼ (nth𝕍 i pᵢ V) d-helper : (n : ℕ) (i : ℕ) → ℕ → 𝕍 ℕ n d-helper 0 _ _ = [] d-helper (suc n) i d = (if n =ℕ i then d else 0) :: d-helper n i d diagonal-matrix-h : (d n i : ℕ) → i by n matrix diagonal-matrix-h d n 0 = [] diagonal-matrix-h d n (suc i) = d-helper n i d :: diagonal-matrix-h d n i diagonal-matrix : (d n : ℕ) → n by n matrix diagonal-matrix d n = diagonal-matrix-h d n n identity-matrix : (n : ℕ)→ n by n matrix identity-matrix n = diagonal-matrix 1 n get-column : ∀ {n m : ℕ} (j : ℕ) → j < m ≡ tt → n by m matrix → 𝕍 ℕ n get-column j p [] = [] get-column j p (row :: rows) = nth𝕍 j p row :: get-column j p rows <-suc' : ∀ {j m : ℕ} → suc j < m ≡ tt → j < m ≡ tt <-suc' {0} {suc m} p = refl <-suc' {suc j} {suc m} p = <-suc' {j} {m} p suc-h : ∀ (j m' : ℕ) → suc (j + m') ≡ j + suc m' suc-h zero m' = refl suc-h (suc j) m' rewrite suc-h j m' = refl <-add : ∀ (j m' m : ℕ) → j + m' < m ≡ tt → m' < m ≡ tt <-add zero m' m p = p <-add (suc j) m' m p = <-add j m' m (<-suc' {j + m'} {m} p) less-less-h : ∀ (j m' m : ℕ) → j + suc m' < m ≡ tt → m' < m ≡ tt less-less-h j m' m p = <-suc' {m'} {m} (<-add j (suc m') m p) transpose-h : ∀ {n m : ℕ} (m' j : ℕ) → j + m' < m ≡ tt → n by m matrix → suc j by n matrix transpose-h {n} {m} m' 0 p M = get-column {n} {m} m' p M :: [] transpose-h {n} {m} m' (suc j) p M rewrite suc-h j m' = get-column {n} {m} m' (less-less-h j m' m p) M :: transpose-h {n} {m} (suc m') j p M gg : ∀ {m : ℕ} → m + 0 < suc m ≡ tt gg {m} rewrite +0 m = <-suc m transpose : ∀ {n m : ℕ} → n by m matrix → m by n matrix transpose {n} {0} M = [] transpose {n} {suc m} M = transpose-h {n} {suc m} 0 m (gg {m}) M <-add : ∀ (j m' m : ℕ) → j + m' < m ≡ tt → m' < m ≡ tt <-add zero m' m p = p <-add (suc j) m' m p = <-add j m' m (<-suc' {j + m'} {m} p) less-less-h : ∀ (j m' m : ℕ) → j + suc m' < m ≡ tt → m' < m ≡ tt less-less-h j m' m p = <-suc' {m'} {m} (<-add j (suc m') m p) transpose-h : ∀ {n m : ℕ} (m' j : ℕ) → j + m' < m ≡ tt → n by m matrix → suc j by n matrix transpose-h {n} {m} m' 0 p M = get-column {n} {m} m' p M :: [] transpose-h {n} {m} m' (suc j) p M rewrite suc-h j m' = get-column {n} {m} m' (less-less-h j m' m p) M :: transpose-h {n} {m} (suc m') j p M gg : ∀ {m : ℕ} → m + 0 < suc m ≡ tt gg {m} rewrite +0 m = <-suc m transpose : ∀ {n m : ℕ} → n by m matrix → m by n matrix transpose {n} {0} M = [] transpose {n} {suc m} M = transpose-h {n} {suc m} 0 m (gg {m}) M
Ахереть))
giorgio
ну кстати не так уж сложно прочитать, если знать синтаксис, а так мозг ломается
Пашок🗽
public class task2 { public static void main(String[] args) { int[] prime = new int [100];} boolean isPrime(int n){ if (n > 1)//if (n > 1) { for (int i = 2; i < n; i++)// в цикле перебираем числа от 2 до n - 1 if (n % i == 0) // если n делится без остатка на i - возвращаем false (число не простое) false; // если программа дошла до данного оператора, то возвращаем true (число простое) - проверка пройдена return true; } else if ()// иначе возвращаем false (число не простое) return false; } if (isPrime = true){ int[] prime = isPrime; System.out.println(prime); } }
import java.util.Arrays; import static java.lang.Math.sqrt; public class Main { public static void main(String[] args) { int[] primeNumbers = new int[100]; primeNumbers[0] = 1; for (int i = 1; i < primeNumbers.length; i++) {//заполняем массив for (int n = primeNumbers[i - 1] + 1; ; n++) { //ищем следующее простое число отталкиваясь от последнего заполненного boolean isPrime = isPrime(n); if (isPrime) { primeNumbers[i] = n; break; } } } System.out.println(Arrays.toString(primeNumbers)); } static boolean isPrime(int n) { //проверяем число на простоту for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) { return false; } } return true; } }
Andrii
ну кстати не так уж сложно прочитать, если знать синтаксис, а так мозг ломается
Ну... и понимать паттерн-матчинг на алгебраических типах... Да ещё понимать зависимые типы, хотя тут это не сильно играет
giorgio
разве паттерн-матчинг это что-то сложное?
Andrii
https://github.com/cedille/ial/blob/master/braun-tree.agda А это красно-чёрное дерево на Agda
Andrii
разве паттерн-матчинг это что-то сложное?
Особо нет, но и опыта применения особо нету... Когда у программиста отбирают переменные и циклы, многие чувствуют себя как боксёром, которому запретили пользоваться кулаками
giorgio
это да. я в общем-то понять могу, но написать будет сложно
Andrii
И это только Haksell... В случае Agda есть ограничения на рекурсию, чтобы избежать бесконечной рекурсии. И... есть зависимые типы, когда тип функции может зависеть от предыдущих аргументов (а-ля шаблоны в С++, но чуть более сурово)
Andrii
И мы получаем доказательства в интуицонисткой логике (изоморфизм Карри-Говарда) что даёт верификацию, вычисления на уровне типов (type level computation) что даёт возможность реализовать типобезопасный аналог printf
Avazart
Т.е. все правила /возможные варианты использования как то тяжко пока осознать.
Andrii
Т.е. все правила /возможные варианты использования как то тяжко пока осознать.
Ну... в принципе в Rust норм заюзал эту идею, и там она не форсируется. Всё-таки в пурефанктионал языках тебе только этим и надо пользоваться, другого не дано
Avazart
Так вроде от туда сперто
Anastasia
Andrii
Ну вообще это алгебраическая теория типов. И попытки добавить её в императивный мир были в Pascal (записи с вариантами имели значение, которое показывало что за тип) type TPerson = record Gender: (Male, Female); case Gender of: Male: Age: Integer; Female: Weight: Real; end; дискриминанты у записей есть в Ada... Но она как-то не зашла тогда и атрофировалась, уростившись до обращения к одной и то же память как к разных типам (сишные union)
Пашок🗽
спасибо огромное
измени имя класса на своё)
Avazart
https://ideone.com/CVBoQo
Andrii
А вот если бы Вирт добавил паттерн-матчинг...
Anastasia
@deleted_730947428
Anastasia
изменила
Пашок🗽
ну и типа всё)
Anastasia
Anastasia
это итог того что изменила
Пашок🗽
вверху смотри у тебя
Пашок🗽
попробуй запустить нажав зеленый треугольничок прямо на методе main)
Anastasia
Anastasia
супер, но 1 только не простое, как я могу это изменить?
Пашок🗽
на 9 строке)
Anastasia
вот, это собственно я хотела вас попросить эту строку прокомментировать
Anastasia
с 2?
Пашок🗽
а что комментировать?) Нужно почитать тебе про массивы, про то что это такое, и как получить доступ к ячейкам памяти (элементам массива)
Пашок🗽
ибо это основы, без этого дальше не уедешь
Anastasia
еще раз спасибо
MarkosTh09
У меня есть переменные булевые такие: isMobile(смартфоны), isTablet(планшеты), isDesktop(мониторы ПК), а как бы вы назвали переменную, которая обозначает смартфоны и планшеты вместе?
Andrii
isGadget но что-то идёт не так...Ну говоря о том, что isDisplay скорее монитор... В целом я бы объявил метод any, который бы принимал перечисление типов, типа if stuff.any(Mobile, Tablet): print('Gadget!')
Пашок🗽
зависит от контекста задачи, если это интернет магазин😂 то наверное лучше так оставить)) Если например чтоб определять как запускать какую-то штуковину на сайте isNative может подойти))
Oleksii
@juliasva Hello, world!
1.5кг отличного пюре
Всем привет!
Виктор Столбец
всегда не хватало!
1.5кг отличного пюре
Я пришел за советами
1.5кг отличного пюре
Пожалуйста направьте, и укажите путь
1.5кг отличного пюре
Хорошо сказано! Я запишу
1.5кг отличного пюре
А как стать программистом?
Виктор Столбец
ох
Виктор Столбец
это такой вопрос.. философский
1.5кг отличного пюре
Буду рад если без рофлов прям посоветуете что ли)
Денис
А как стать программистом?
Напиши Hello World на любом языке
Денис
И станешь
Виктор Столбец
я до конца не стал программистом. учусь на прикладной математике и информатике. раньше загонялся от того, что всегда надо торопиться, делать хоть что-то, главное программерское, но порой надо остановиться и послушать себе, что тебе интересно в программировании. лично я сейчас сосредоточился на математике, и мне нравится. изучаю теорию вероятностей со статистикой. повторяю алгебру с мат. аналом.
Виктор Столбец
все полезные материалы можно найти в открытом доступе. начало всегда неважно на каком языке. мне нравится с++ там можно разобраться как все работает под капотом
1.5кг отличного пюре
И станешь
Уже учу html, через десяток уроков начинается по списку в этом же курсе css. Можно ли после этого начинать что то другое? Или надо годик изучать только это?
Mikhail
А как стать программистом?
Как только в трудовом договоре будет написано, что ты программист, так и станешь программистом, все просто.
Виктор Столбец
если изучил то зачем еще
Виктор Столбец
не надо подгонять себя под среднее
Mikhail
1.5кг отличного пюре
Учи JS
Вот всегда хотелось спросить "на чем основываются подобного рода советы"?
1.5кг отличного пюре
Вот всегда хотелось спросить "на чем основываются подобного рода советы"?
Люди с опытом отталкиваться же от чего то, когда советуют тот или иной язык
Денис
JS просто сейчас самый лучший язык для веба