Вопросы с тегом «haskell»

30
Советы по игре в гольф в Хаскеле
Какие общие советы у вас есть для игры в гольф на Хаскеле? Я ищу идеи, которые могут быть применены к задачам по коду для гольфа в целом, которые, по крайней мере, несколько специфичны для Haskell. Пожалуйста, оставьте только один совет за ответ. Если вы новичок в игре в гольф на …

30
Синтаксис без сахара
В Хаскеле список обозначений: [a,b,c] Это просто синтаксический сахар для: a:b:c:[] И строка обозначений: "abc" Это просто синтаксический сахар для: ['a','b','c'] Это означает, что строка: "abc" Такой же как: 'a':'b':'c':[] задача Получив строку, вы должны вывести, как будет выглядеть десинтаксированная версия в Haskell. правила Вы получите строку любым допустимым методом …

30
Подождите, что это за язык?
Недавно я имел удовольствие написать программу на Haskell, которая могла бы определить, NegativeLiteralsзадействовано ли расширение. Я придумал следующее: data B=B{u::Integer} instance Num B where{fromInteger=B;negate _=B 1} main=print$1==u(-1) Попробуйте онлайн! Это будет печатать Trueнормально и в Falseпротивном случае. Теперь мне было очень весело делать это, и я передал вызов всем вам. …

12
Давайте сделаем диету Haskell
У Haskell есть кортежи, которые можно записать как (a,b,c) Однако это просто синтаксический сахар для (,,)a b c В общем случае n- кортеж может быть сформирован с n-1 , s между (..., )за которым следуют его элементы, разделенные пробелами. Например, 7-кортеж, (1,2,3,4,5,6,7)может быть сформирован (,,,,,,)1 2 3 4 5 6 …

3
Кратчайшая функция a -> b -> (a -> b) в Haskell
На тесте я получил следующий вопрос: Напишите функцию fследующего типа a -> b -> (a -> b). aи bне должно быть связано ни в каком смысле, чем короче код, тем лучше. Я придумал f a b = \x -> snd ([a,x],b). Можете ли вы найти что-нибудь круче? На данный момент …

4
Добавление кортежей в pointfree
Какой самый короткий способ выразить функцию f(a,b)(c,d)=(a+c,b+d) в бессмысленной нотации? pointfree.io дает нам uncurry (flip flip snd . (ap .) . flip flip fst . ((.) .) . (. (+)) . flip . (((.) . (,)) .) . (+)) который с небольшим трудом может быть сокращен до uncurry$(`flip`snd).((<*>).).(`flip`fst).((.).).(.(+)).flip.(((.).(,)).).(+) для 76 …

30
Восстановите премьер от главной власти
Определение : простая степень - это натуральное число, которое может быть выражено в форме p n, где p - простое число, а n - натуральное число. Задача : При заданной простой степени p n > 1 вернуть простое число p. Тестовые случаи : input output 9 3 16 2 343 …
13 code-golf  arithmetic  primes  king-of-the-hill  python  board-game  code-golf  number  subsequence  code-golf  ascii-art  code-golf  array-manipulation  decision-problem  grid  fastest-algorithm  logic-gates  logic  code-golf  cards  code-golf  rational-numbers  code-golf  math  number  sequence  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  code-golf  number  sequence  decision-problem  code-golf  ascii-art  number  code-challenge  sequence  arithmetic  sorting  code-golf  date  fastest-algorithm  code-golf  string  number  random  combinatorics  code-golf  combinatorics  code-golf  ascii-art  base-conversion  code-golf  array-manipulation  code-golf  string  code-golf  string  number  arithmetic  code-golf  kolmogorov-complexity  code-golf  string  array-manipulation  json  code-golf  puzzle-solver  code-golf  binary  graph-theory  code-golf  arithmetic  haskell  code-golf  string  cipher  code-golf  code-golf  string  parsing  alphabet  code-golf  string  code-golf  ascii-art  code-golf  string  number  code-golf  string  balanced-string 

2
Какой хороший способ справиться с задачами, требующими массивов, используя Haskell?
Часто задача требует реальных массивов. Возьмем, к примеру, задачу для реализации Befunge или> <>. Я попытался использовать Arrayмодуль для этого, но он действительно громоздок, так как мне кажется, что я слишком многословен. Кто-нибудь может мне помочь, как решить такие задачи кода-гольфа менее многословно и более функционально?

7
Code-Golf: последовательность Фейри (I)
Вызов В этом задании вам дадут целое число N (меньше 10 ^ 5), выведите последовательность Фари порядка N Вход N указан в одной строке, входы заканчиваются EOF. вход 4 3 1 2 Вывод F4 = {0/1, 1/4, 1/3, 1/2, 2/3, 3/4, 1/1} F3 = {0/1, 1/3, 1/2, 2/3, 1/1} F1 …
10 code-golf  math  code-golf  math  code-golf  number  number-theory  code-golf  math  arithmetic  repeated-transformation  code-golf  geometry  popularity-contest  code-golf  code-golf  tips  haskell  math  fastest-algorithm  code-golf  combinatorics  code-golf  math  polynomials  rational-numbers  code-golf  code-golf  popularity-contest  javascript  code-golf  kolmogorov-complexity  code-golf  code-golf  math  combinatorics  permutations  code-challenge  restricted-source  random  array-manipulation  code-challenge  generation  code-golf  code-golf  ascii-art  arithmetic  division  code-challenge  number  code-golf  math  number  binary  code-golf  ascii-art  code-golf  interpreter  stack  code-golf  internet  networking  code-golf  math  code-golf  ascii-art  code-golf  math  sequence  code-golf  hello-world  restricted-source  code-golf  ascii-art  code-golf  geometry  code-golf  kolmogorov-complexity  pi  code-golf  math  combinatorics  permutations  code-golf  math  code-challenge  ascii-art  code-golf  string  code-golf  quine  code-golf  math  floating-point  golfscript  code-golf  string  code-golf  sliding-puzzle  code-challenge  arithmetic  code-golf  math  code-golf  geometry  optimized-output 

3
Интерпретируемая арифметика
Малоизвестный факт: если вы включите достаточное количество расширений языка (ghc), Haskell станет интерпретируемым языком с динамической типизацией! Например, следующая программа реализует сложение. {-# Language MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances, UndecidableInstances #-} data Zero data Succ a class Add a b c | a b -> c instance Add Zero a a instance …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.