Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Rooster

Программирование, т. 7

  

536 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

 

ведь если подумать, то любая структура - кортеж? любая функция принимает кортеж  :trollface:

да

если я ничего не путаю, некоторые ящызи позволяют из коробки и принимать сразу кортеж в функцию


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

 

 

ведь если подумать, то любая структура - кортеж? любая функция принимает кортеж  :trollface:

да

если я ничего не путаю, нормальные ящызи позволяют из коробки и принимать сразу кортеж в функцию

 

fixed


 

<< твой комментарий очень важен для форума.

Поделиться сообщением


Ссылка на сообщение

 

 

 

ведь если подумать, то любая структура - кортеж? любая функция принимает кортеж  :trollface:

да

если я ничего не путаю, нормальные ящызи позволяют из коробки и принимать сразу кортеж в функцию

 

fixed

 

млышь бля джава норм яп  :trollface:


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение

ну вот в шарпе завели, даже именованные теперь нормально, а не ItemN

 

правда я заперт в .нет4  :fffuuu:


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

Поделиться сообщением


Ссылка на сообщение
(изменено)

ведь если подумать, то любая структура - кортеж? любая функция принимает кортеж  :trollface:

грац (ноу сарказм), ты вывел математическое определение функции

 

в математике функция это кортеж (arg1 ... argN) -> result | arg1 ∈ A1 ... argN ∈ AN, result ∈ R

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

 

например

+ : (Int, Int) -> Int

+(a1, a2) |--> a1 + a2


Изменено пользователем TheDeadSkin

Поделиться сообщением


Ссылка на сообщение

спасибо  :trollface:


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение
(изменено)
1) компаткный - нет ​

 

2) понятный - ещё меньше чем компактный

 

 

Бля, ну лол, очевидно же, что конкретно в том сообщении я имел ввиду  это

 

function cache($key = null)
    {
        if (is_null($key)) {
            return app('cache');
        }

        return app('cache')->get($key);
    }

Про паттерны, которые со временем легко могут стать антипатернами и солиды это конечно интересно, но нет :rickroll:

 

P.S. хелпер это не класс


Изменено пользователем fessnik

Поделиться сообщением


Ссылка на сообщение

 

В настоящем яп будет полноценный паттерн матчинг :trollface:

деструктуризация точнее

Деструктуризация — это то, что он показал в примере. Это лишь малая доля того, что позволяет паттерн матчинг.


Поделиться сообщением


Ссылка на сообщение

И в каком яп он есть? Я чет пробовал про этот паттерн матчинг читать, но это какая-то муторная штука)

Поделиться сообщением


Ссылка на сообщение

Ну тот же Эликсир на нём зиждется (как и его батя Эрланг)

  def get_repo_data(%{host: "github.com", path: path}) do
    (get_endpoint() <> path <> @github_token_query <> get_token())
    |> HTTPoison.get([], follow_redirect: true)
    |> handle_response
    |> parse_response
  end

  def get_repo_data(_), do: {:error, :unavailable}

  defp handle_response({:ok, %{body: body, status_code: 200}}), do: {:ok, body}
  defp handle_response(_), do: {:error, :unavailable}

  defp parse_response({:ok, body}), do: Jason.decode(body)
  defp parse_response(error), do: error
У тебя в определении функции может быть проверка на соответствие входящих данных, и в случае несоответствия ищется следующее определение функции, и так пока не найдётся подходящее. Это позволяет писать код с минимумом условной логики, то бишь ифов и кейсов.
.felix понравилось это

Поделиться сообщением


Ссылка на сообщение
(изменено)

Бля, ну лол, очевидно же, что конкретно в том сообщении я имел ввиду  это

 

function cache($key = null)
    {
        if (is_null($key)) {
            return app('cache');
        }

        return app('cache')->get($key);
    }

 

а этом и есть проблема по части "понятности", зависимо от аргументы результаты вообще не имеют друг к другу отношения

 

к слову о том что я писал выше

эта функция хуёвая с т.з. математического определения "функции"

она валидная, но ебанутая

 

cache : KeySpace ∪ {null} -> CacheManagerSpace ∪ ValueSpace

key ↦

{

* key ∈ {null} => cache(key) ∈ CacheManagerSpace

* key ∈ KeySpace => cache(key) ∈ ValueSpace

}

 

проблема в том что у тебя в этой функции запакованы 2 разные функции без какого-либо пересечения того что они делают

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

 

* KeySpace ∩ {null} = Ø

* CacheManagerSpace ∩ ValueSpace = Ø

 

и в то же время аргументы одного из них ведут всегда к одному и тому же пространству

 

* k ∈ {null} => cache(k) ∉ ValueSpace

* k ∈ KeySpace => cache(k) ∉ CacheManagerSpace

 

поэтому в нормальном мире это две разные функции

 

cache : Ø -> CacheManagerSpace

() ↦ cache(key) ∈ CacheManagerSpace

 

cacheGet : KeySpace -> ValueSpace

key ↦ cacheGet(key) ∈ ValueSpace

 

эти паттерны и идеи разделения функционала берутся не с пустого места, основы этого дела закладывались ещё до существования программирования

поэтому кстати и типизация норм потому что по большей части предотвращает подобный бред и не даёт тебе делать функции которые выглядят как помои

 

но тут в игру вступают пхпы с жаваскриптами и всё идёт в пизду, потому что им видите ли сложно с типами

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

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

 

и в итоге основным аргументом в пользу динамик/слабых типов стаёт оправдание собственной некомпетенции через "сложно с типами" или ещё хуже "смотри чо можно сделать" на вещи которых просто не должно существовать изначально, типа этой кеш-функции на две/три задачи. может туда побольше ифов и проверок типов засунуть чтоб можно было вообще всю работу с кешменеджером через одну функцию делать? заебись же, компактно (на самом деле нихуя не компактно, ты не выигрываешь ничего сливая функции вместе, просто ничего, ноль)


Изменено пользователем TheDeadSkin

Поделиться сообщением


Ссылка на сообщение

бля а можно по меньше математики

мы все же на продоте находимся

 

вывод из вашей дискуссии один - метод надо разделить и перегрузить


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение

мне интересно, а буржуи на своих продотах тоже срутся за типизацию? или у них всё толерантненько, бек любит фронт и наоборот  :hmm:  :hmm:  :hmm:

Поделиться сообщением


Ссылка на сообщение

JS/TS - лучший язык, очевидно же что все просто доджат этот факт  :buba:


Я не человек, Я - Кантона. (с)

Miraxes#2986

753357.png

Поделиться сообщением


Ссылка на сообщение

1. HTML 2. TS 3. JS


have courage and be kind

  😈🫀💋 🩸👣🤌🏿🦄 🐝 ☄️❣️ 💕 💞❤️😈

 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖

220941652_Annotation2021-03-20123345.jpg.23dcff343d6a377badf433b20f5271fd.jpg

💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 

Поделиться сообщением


Ссылка на сообщение

Статическая типизация головного мозга :trollface:

Поделиться сообщением


Ссылка на сообщение

1. HTML 2. TS 3. JS

CSS забыл, тоже годный язык программирования

Поделиться сообщением


Ссылка на сообщение
(изменено)

 

P.S. хелпер это не класс

А это что - https://en.wikipedia.org/wiki/Helper_class?

 

Это википедия чувак :buba:

 

А если серьезно, то посмотри на функцию которую я показывал и подумай, почему это не класс :rickroll:


Изменено пользователем fessnik

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...