На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (66) « Первая ... 44 45 [46] 47 48 ...  65 66  ( Перейти к последнему сообщению )  
> JS и его "недостатки"
    Цитата fatalist @
    Почему? Я же этот метод непосредственно из onclick ячейки вызываю, там же дефолтные действия при клике на ячейке...

    Тогда я не совсем понял чем твой вариант отличается от того, который я нарисовал. :scratch:
      Теперь допустим у нас есть еще такая функция:
      ExpandedWrap disabled
        makeList = case (random 2) of
            0 → Cons  0     list
            1 → Cons "zero" list

      тут компилятор может либо догадаться сам, либо мы ему подсказать, явно приписав тип makeList:
      ExpandedWrap disabled
        makeList : () → List (Nat | String, Nat, String, Bool)

      в итоге из show (makeList) получим последовательность
      ExpandedWrap disabled
        show{Nat|String} x     -- где (Cons x list) <= makeList
        show{Nat}        1     -- забыл в первый раз типы приписать
        show{String}    "two"
        show{Bool}       False

      и далее
      ExpandedWrap disabled
        typecase x of
            Nat    → show{Nat}    x
            String → show{String} x
        show{Nat}        1
        show{String}    "two"
        show{Bool}       False


      Это для случая, когда тип определяется в динамике.
        Цитата Астарот @
        Тогда я не совсем понял чем твой вариант отличается от того, который я нарисовал. :scratch:
        Да в общем-то ничем, кроме того, что он явно определен и нет проверки на его существование :)
          Цитата fatalist @
          Да в общем-то ничем, кроме того, что он явно определен и нет проверки на его существование :)

          А! Ты имеешь ввиду, что я написал onclick = function(){...}, а не onclick = method(); ? :) То есть намертво прибил какой-то обработчик без возможности замены?
            Цитата D_KEY @
            korvin, покажи аналог моего кода, пожалуйста.

            Что именно?
            ExpandedWrap disabled
              template<typename T, typename... Args>
              void format_print(const char* s, T value, Args... args)

            это
            ExpandedWrap disabled
              instance List {∀α <: Show} <: Show
                  show : List α → ()

            ,
            ExpandedWrap disabled
              std::cout << value;

            это
            ExpandedWrap disabled
              show x

            ,
            ExpandedWrap disabled
              format_print("a = %, b = %, c = %", 10, 2.1, "aaa");

            это
            ExpandedWrap disabled
              show list

            Ну или если явно, то
            ExpandedWrap disabled
              show $ Cons 10 $ Cons 2.1 $ Cons "aaa" Nil

            или с сахаром:
            ExpandedWrap disabled
              show [10, 2.1, "aaa"]


            Если тебе необходима форматная строка, сейчас допишу.
              Цитата Астарот @
              А! Ты имеешь ввиду, что я написал onclick = function(){...}, а не onclick = method(); ? :) То есть намертво прибил какой-то обработчик без возможности замены?
              Ну я имел в виду, что у меня во первых сделано по принципу того-же onclick - ИМХО когда работаешь с объектом извне удобно с ним работать по той же схеме, что и с элементами...
              А во вторых у меня сразу прописано что туда передается и она по любому вызывается... то есть в прототипе она уже будет, а как ее будет использовать сторонний программист - это его проблемы...
                Еще не надоело копья ломать?
                  С форматной строкой

                  ExpandedWrap disabled
                    type List {α : Type, β : Type} = Cons α (List β) | (Nil : ())
                     
                    instance List {∀α <: Show} <: Show
                        formatShow : String → List α → ()
                        formatShow   fmt      xs     = rec fmt xs where
                            rec fmt  Nil        = show fmt
                            rec fmt (Cons x xs) = do
                                let fmt = until '%' print fmt
                                show x
                                rec (tail fmt) xs
                            end
                    end

                  соответственно
                  ExpandedWrap disabled
                    formatShow "a = %, b = %, c = %" [10, 2.1, "aaa"]

                  Сообщение отредактировано: korvin -
                    Цитата SPM @
                    Еще не надоело копья ломать?
                    Кому? Какие копья? Я еще ничего не сломал :)
                    Сообщение отредактировано: fatalist -
                      Цитата korvin @
                      instance List {∀α <: Show} <: Show

                      Эт чо за юникодные символы такие, которых на клаве даж нема? Или это просто псевдокод-формула? :unsure:
                        Цитата SPM @
                        Еще не надоело копья ломать?

                        Мы взрослые люди - ничего не ломаем. Спокойно пользуемся линейкой... :whistle:
                          Цитата KILLER @
                          Эт чо за юникодные символы такие, которых на клаве даж нема? Или это просто псевдокод-формула? :unsure:

                          ∀ - квантор всеобщности
                          α - буква греческого алфавита.
                          Сообщение отредактировано: korvin -
                            Цитата korvin @
                            ∀ - квантор всеобщности
                            α - буква греческого алфавита.

                            Я думал что эти символы являются частью синтаксиса языка, на котором ты все это привел...
                              Цитата D_KEY @
                              К аргументам. Не нужны какие-то левые параметры

                              Но они есть... И есть именно по вышеозвученной причине - невозможности расширить список аргументов в будущем при необходимости.

                              ExpandedWrap disabled
                                BOOL WINAPI DllMain(
                                  __in  HINSTANCE hinstDLL,
                                  __in  DWORD fdwReason,
                                  __in  LPVOID lpvReserved
                                );


                              ExpandedWrap disabled
                                BOOL InternetCheckConnection(
                                  __in  LPCTSTR lpszUrl,
                                  __in  DWORD dwFlags,
                                  __in  DWORD dwReserved
                                );


                              Цитата D_KEY @
                              Я про va_list и пр.

                              Это не то... При va_list у тебя прототип должен содержать описание переменного числа аргументов. А я говорю про возможность вызова функции с числом аргументов, отличным от прототипа.

                              Цитата D_KEY @
                              Да, он, естественно, проектировался с учетом особенностей С

                              Цитата D_KEY @
                              Ну и winAPI не имеет никакого отношения к С

                              Нет ли здесь противоречий? :rolleyes:
                                Цитата KILLER @
                                Я думал что эти символы являются частью синтаксиса языка, на котором ты все это привел...

                                А, нет, то псевдоязык. Однако, например, для хаскелла есть "pretty-print-редакторы", которые при отображении кода подменяют стрелки -> и => и др. на соответствующие юникодные символы. Типовые переменные часто пишут греческими буквами (не в рабочем коде, а в "публицируемом", конечно), чтоб лучше отличались от других термов. Квантор всеобщности в (template-?) хаскелле записывается как "forall.", не знаю, подменяют ли его редакторы на соответствующий символ.
                                Сообщение отредактировано: korvin -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (66) « Первая ... 44 45 [46] 47 48 ...  65 66


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.1627 ]   [ 15 queries used ]   [ Generated: 25.08.26, 11:38 GMT ]