Press "Enter" to skip to content

Haskell lists — FunFunFunction #39


привет привет mmm PJ звёзды, которые вы смотрите
веселый забавный удар в этой серии мы
обучение Haskell вместе вместе я
не знаю Haskell, поэтому мы изучаем его
через бесплатную электронную книгу ,
Haskell есть ссылка на него в
описание ниже, если вы случайно
наткнуться на это видео, и вы
смущенный, вы можете просмотреть всю серию
с самого начала, нажав кнопку I в
верхний угол темы на сегодня
списков вы можете найти ссылку на эти
конкретной главы в книге, что это
эпизод в описании
ниже, так что давайте прыгать в него. У меня есть, как
Ты сделал это
gah okay cool, мы собираемся загружать списки
а не HS, который является файлом, который мы работаем
здесь, смотря на списки глав
напоминает мне много стирания в JavaScript
но в то же время он также чувствует
списки играют гораздо более важную роль в
Хаскелл, чем игра Рэя в JavaScript, так
это то, как вы определяете список, оставшийся потерянным
номера и две три три BAM и
то вы набираете цифры в этот момент
книга вводит поздно, но я не чувствую
как он точно объясняет, что это за
в книге говорится, что мы используем left для определения
имя в GHC. Я знаю это, если
вы забыли, какие имена вы можете
нажмите там для переподготовки, они добры
подобных констант или символов
однако это меня смущает, потому что я могу
я могу просто потерять цифры два
равно двум трем четырем семи, а затем я
может делать меньше чисел на один меньше чисел два
и они оба работают, я просто не
Я не понимаю, почему он хочет меня, почему
в книге говорится о том, пусть так, если вы знаете
пожалуйста, прокомментируйте ниже, чтобы
вы можете воспитывать меня и своих товарищей
зрителей одним из способов, которые перечислены в Haskell или
отличается от массивов тем, что стирание
JavaScript позволяет смешивать типы, но
они не разрешены в Haskell, поэтому, если
была цель JavaScript был бы
разрешено делать как четыре восемь и привет
и это будет действительный массив в
JavaScript, но это не в Haskell, поэтому
вы получаете сообщение об ошибке вроде как no
экземпляр для num char, возникающий из
буквально четыре я должен иметь только
числа в нем Я могу иметь строки в
список вафельных кошек, и это будет работать
они просто кричат, но им просто нужно
быть тем же самым типом в массиве, когда я
сказал, что я чувствую, что списки больше
фундаментальные для haskell, чем массивы или
JavaScript — одна из вещей, которые сделали
мне кажется, что строки
фактически списки в строках JavaScript
как отдельная вещь из гонки, но в
Haskell, когда я пишу, как этот кот, который
на самом деле просто синтаксический сахар для
написав эту кошку BAM OOP, поэтому в Haskell a
string — это не строка, на самом деле
просто список строк символов или
списки, поэтому общая задача состоит в том, чтобы поставить два
списков вместе и потому, что строки
списки мы можем использовать ту же функциональность
для конкатенации строк, так что мы делаем
hello waffle cat, и мы используем плюс
плюс оператор , чтобы сделать это полезным вырезать так
в последнем эпизоде ​​я пришел
использовал тот факт, что вы не могли
просто плюс строки вместе, что в высокой
школы, как вы можете в большинстве других
языки программирования, которые находятся в ошибке
но теперь, когда я знаю, что строки или
списков, и вы используете специальный оператор для
список конкатенаций немного напоминает
больше смысла в книге предупреждает здесь о
небольшое снижение производительности, когда когда
используя оператор плюс плюс или длинный
поэтому давайте представим, что это было
по какой-то причине очень длинная строка
и мы просто хотели добавить, что вы знаете
очень короткая строка в конце
внутренне haskell услышит, как ходить
через весь символ списка
перед добавлением
строка справа, это не очень
проблема, когда вы просто справляетесь с этим
как делают маленькие струны, тогда вы не
нужно беспокоиться, но представьте себе, как список
как это миллион пункт небольшой , то , что
будет влиять на производительность вашего
однако, если у вас есть список
то есть о, тогда вы можете использовать что-то
называемый оператором cons, который является colla
и вы можете добавить вещи в начале
как это, однако, это мгновенно
и не имеет такой же производительности
характеристики отмечают, что
концентратор требуется один номер
не принимает список плюс плюс
оператору нужны вещи, которые должны быть
список, поэтому, если мы хотим сделать то же самое
с с плюсом плюс больше девяти
здесь, что не получится, нам придется
добавлять списки с обеих сторон и из-за
этот аспект производительности курса
оператор фактически используется внутри
Haskell так , когда я сделать один два три это
это просто синтаксический сахар внутри
Haskell напишут , кто будет переписывать , что
в виде
одна минута против трех минусов и
список Punk, и это дает нам список с
один два три, если вы хотите получить
элемент из списка на конкретный
index вы можете использовать восклицательный знак
восклицательный знак, поэтому, если я это сделаю
Мне нравится слышать, что я получу, потому что
то есть индекс индекса 1 индекса 1 здесь и
помните, что это только списки, поэтому я
может просто сделать 1 2 3, и я мог бы сделать
восклицательный знак
2, и это даст мне 3, потому что индекс
0 index 1 index 2 3 здесь и это дает
us 3 так же, как массивы в JavaScript
списки в Haskell могут содержать другие списки
поэтому мы можем сделать 1 2 3 4, и это может быть
внутри другого списка это работало
и мы не можем выбраться из второго списка
здесь, посмотрев там, и мы можем
добавьте другие списки в наш список
списки, делая это, как пять шесть стрелы
о нет, это не сработает, потому что это
было бы похоже на добавление этого, и это не
разрешено, потому что это этот список
вот список списков с
числа в них и добавление чисел
прямо к ним будут смешивать типы
поэтому то, что разрешено ,
сделав пять шесть и список, поэтому теперь мы добавляем
список списков с номерами в них
в другой список, который также является списком
списки с номерами в них, и это будет
работа надеюсь, что мне нужно делать плюс
плюс да, и я мог бы также сделать это с помощью
концентратор, я думаю, но здесь я
вероятно , могли бы на самом деле выиграть этот
да , что рабочие списки могут быть
сравниваются, если материал, который они содержат
можно сравнить, например, мы можем
сравните, как пять на пять больше, чем
шесть нет, мы не можем сравнивать числа
поэтому мы можем сравнить списки
чисел, чтобы мы могли видеть, например
как один три, мы можем видеть,
больше нуля
ах , в которой он находится в немного мы находимся
собираемся взглянуть на функции списка
но первый кофейный хлеб
О, так что с функциями, давайте предположим, что
у нас есть список вроде 5 4 3 2 1 мы можем
вызовите, к примеру, голову, которая дает
нас 5, потому что это первый элемент
5 думаю о списке, как о монстре, который я сделал
это так это голова , так что мы можем сделать
хвост и что даст нам это есть
хвост — это хвост головы, поэтому вы
спросил меня, как вы это делаете, но делаете
что, указав список, который даст нам 1
потому что 1 последний пункт , то есть
обратная функция хвоста, которая
находится в нем, поэтому вы просто заходите в него и что
это даст вам все, кроме
но если вы попытаетесь сделать голова на пустой
в списке вы получите сообщение об ошибке системы типов
Haskell позволяет нам ловить много
ошибок во время компиляции, но это один
ошибок, которые мы не можем и в
Haskell мы хотим избежать ошибок времени выполнения
насколько это возможно, так что это хорошо
практике, чтобы убедиться, что мы не
передавая любую пустую гонку на такие функции
как голова, чтобы сделать, что у нас есть функции
как длина 0, вы знаете как 1 2
что даст нам 2, существует функция
что фактически проверяет, является ли массив
пусто , и этого достаточно фанк называется
null, так что если он не пуст, это нормально
он будет ложным, и если он пуст
это будет правда, у нас есть другие
таких функций, как обратное
не удивительно, изменит список
существует функция, называемая take
и возьмите, хватит так много предметов из
начало
из массива, который вы указываете, поэтому я говорю
возьмите три, и это займет первое
три элемента из массива не правы
список, все еще живущий на земле JavaScript и
ты по-прежнему прям, если я возьму два
возьмет первые два пункта, если мы возьмем
ноль, это не даст нам ошибку
даст нам пустой список , чтобы принять более
чем существует, так что он все еще работает, если
Я говорю, как тысячу, это просто даст
нам столько, сколько доступно, это также
вид обратного захвата, который падает так
он просто бросает первые два элемента на
массив и возвращает остальные Есть
функции , такие как минимальная хорошо мини — мини
мама, которая дает нам наименьшее число
и, конечно, есть максимум, который я
не могут произнести эти вещи макси, но
максимум, который дает нам наибольший
число и есть такие вещи, как некоторые
который суммирует все цифры и
есть такие вещи, как продукт, который будет
умножьте все числа, как 5 раз 4
раз 3 раза 2 раза 1 — 120, и там
является функцией LM, которая проверяет,
элемент является частью данного списка, поэтому
скажем, что у нас есть 5 4 3 2 1 и
проверьте, что элемент 6 является частью этого
это не
однако элемент 5 есть или 3 некоторых человека
найти это немного трудно читать, так что LM
часто называемой функцией инфикса и
ягненок, а затем истинно, если вы забыли
об ошибках в функциях исправления вы можете
нажмите здесь
для репетиции, но они в основном
функции , которые вы размещаете в между
аргументов любая функция может быть вызвана как
не инфиксный но есть не являются
нормальные функции инфикса или плюс
это функция инфикса, без которой моя батарея умерла
на моей клавиатуре, и, наконец, я хочу
указать на то, что книга
не говорит, но очень ясно
отличие от JavaScript, потому что
обратите внимание, что все здесь похоже на
функции отделены от
список в Haskell у нас есть длина, то есть я
просто функция, которая принимает список, но в
Длина JavaScript — это свойство на
на объекте массива, и это показывает, как
Haskell — это не
объектно-ориентированный язык — это функция
ориентированный в JavaScript
и на других языках,
объектная ориентация Состояния и функции
смешиваются так, что длина и
массив здесь, они объединены
вместе
однако в Haskell они чисто
разделенное то же самое, что и для
например, эквивалент JavaScript
вероятно, срез, который будет похож на
0-2, и на этом у вас есть
смотрел эпизод веселой веселой функции I
выпустил это каждое утро в понедельник о
подождать сто Гринвич Среднее время
если вы нашли это интересным, вы можете
хотите быстро проверить канал
лады ниже, чтобы увидеть, если это что-то
что вы считаете, что подписались на I
am mpj до следующего утра в понедельник поблагодарить
вы
Please follow and like us:

Be First to Comment

Добавить комментарий