Запитання з тегом «haskell»

Цей виклик пов'язаний з мовою Хаскелла. Зауважте, що проблеми, на які потрібно відповісти конкретною мовою, як правило, не рекомендуються.

30
Поради щодо гольфу в Хаскеллі
Які загальні поради щодо гольфу в Хаскеллі? Я шукаю ідеї, які взагалі можуть бути застосовані для кодування проблем із гольфом, які принаймні дещо характерні для Haskell. Будь ласка, опублікуйте лише одну пораду за кожну відповідь. Якщо ви новачок у гольфі в Хаскеллі, ознайомтеся з Посібником з правил гольфу в Хаскеллі …

30
Синтаксис без цукру
У Haskell список позначень: [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 є кортежі, які можна записати як (a,b,c) Однак це лише синтаксичний цукор для (,,)a b c Загалом, n кортеж може бути утворений з n-1 , s між (... з )подальшими його елементами, розділеними пробілами. Наприклад, 7-кортеж (1,2,3,4,5,6,7)може бути утворений за допомогою (,,,,,,)1 2 3 4 5 6 7 …

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

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 7 2687 2687 59049 …
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
Код-Гольф: послідовність Фарі (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, …
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 …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.