Alexander
go o c [] = [(o,c)] go o c (x:xs) | c+1==x = go o x xs | otherwise = (o,c): go x x xs
Alexander
@mtreskin ^^
Alexander
только начало проверь и то, что ты хочешь в случае [1,2,5,7,8] получить [(1,2),(5,5),(7,8)]
Vladislav
но это O(n), не знаю как лучше даже не на haskell
а как ты быстрее O(n) сделаешь, тебе же все данные надо прочитать
Alexander
/me вертит поварёжку в руках со словами "магия"
Alexander
(не знаю)
Evgenii
а как ты быстрее O(n) сделаешь, тебе же все данные надо прочитать
Ну если отсортированно можно прыгать, асимптотика та же, но быстрее
Ilya
modify x [] = [(x, x)] modify x xs = let (x', x'') = head xs in if (x == pred x') then (x, x'') : tail xs else (x, x) : xs *Main> foldr modify [] [1, 2, 3, 7, 8, 9, 10] [(1,3),(7,10)] *Main> foldr modify [] [1, 2, 3, 4, 7, 9, 12, 13, 14, 15, 16] [(1,4),(7,7),(9,9),(12,16)]
Ilya
мой вариант с фолдом @mtreskin
igo
фронтендщик страшный человек, по моему опыту --- каждый раз, когда ты хочешь проект писать на scala.js или там purescript потому что так проще и язык удобоваримый, тебе говорят, что фрондэндщик не врубится, поэтому писать будет как обычно на джаваскрипте, скрипеть зубами и слушать свои валенки
лучше писать на обычном js (или если очень хочется, то на typescript), потому что количество инструментов / особенностей апи браузеров / миллион опций во фреймворке и столько же фреймворков — становится сложно, когда их используешь не с js. как люди ghcjs с реактом дружат я хз, это ж кошмар.
Alexander
страшновато..
Quet
обычный js это ад даже если с флоу ts лучше но все равно напрягает зоопарк библиотек которые тащить надо
igo
с es6 всё стало сильно лучше, так что норм, хаскелисты не умрут.
Quet
лучше, но говно все ещё
лучше, но говно все ещё
+ попытки улучшить жс, схожи с попытками улучшить пхп - безнадежно.
kannie
Привет всем! Срочно нужна помощь с заданием. До вечера нужно написать бота для настольной игры на Haskell. Бот должен принимать команды движениям от сервера в форме стринга, эвалюировать их с помощью интерной структуры данных(доска игры) и парсить в форме FEN стринга состояние доски обратно. Подробности в приват.
Dmitry
Это где так плющат студентов хаскелом, что аж за помощью обращаются?
kannie
У меня в универе , технический уник, мне очень нужны пункты. Сдавать задание вечером. Очень срочно , пжл,кто разбирается , напишите!!!
kannie
Часть кода есть, его нужно доработать
Vladislav
за паучка?
Dmitry
Кто не верил в работу на хаскеле? Вот вам пожалуйста
kannie
В смысле ? Что за паучок
Dmitry
Что за универ-то? Просто интересно, где такое
Dmitry
И кто препод - наверняка ведь мы его знаем
kannie
Берлинский универ
Dmitry
а, тогда нет
kannie
Я из Германии
Vladislav
видимо должна быть методичка/ТЗ
kannie
Я не знаю такие обозначения . Сорри
kannie
За вознаграждение
kannie
Пишите в лс!
Dmitry
Ну сейчас народ проснется, рановато все же. По описанию за день вполне делается, но вообще не стоит такое откладывать до последнего момента
kannie
Да:(( просто все время на Java потратили и немного не дооценили этот язык. Думали будет easy как scala:)
Dmitry
ну так и есть
Dmitry
он проще обоих языков
Dmitry
особенно скалы
Dmitry
сколько строк на java/scala ?
kannie
1200 строк на яве
kannie
В хэскелле не больше 100 написать
Vladislav
kannie
Нет.. это примерная оценка количества кода
kannie
Там не так много , просто времени нет уже писать и разбираться .мне ещё сегодня в универ надо Java проект представлять
Dmitry
можешь еще спросить здесь: https://gitter.im/ruHaskell/forall
kannie
Спасибо!:)
Dmitry
код на джава лучше выложить в gist для понимания, стоит с ним связываться или нет. или на scala. короче, которого меньше
Dmitry
основная проблема не написать, а понять что нужно
Dmitry
удачи.
Vladislav
или хотя бы более подробное описание задачи
kannie
Спасибо . Да джава не надо, там не много не то. Задание могу описать,сек
kannie
Есть уже шаблон Haskell с колом, нужно дополнить пару функций
kannie
Есть две функции, они получают состояние доски от сервера в форме FEN стринга. Настольная Игра называется Lasca. Одна функция должна с помощью ситуации на доске посчитать все возможные движения и вернуть их как стринг например "a3-b4" Вторая функция выбирает движение из листа, при этом не нужно крутого КИ и возвращает его.
kannie
КИ-искусственный интеллект
Dmitry
могу посоветовать так же описать , что такое FEN string, потому что этого никто не знает
Dmitry
и что за игра lasca
Dmitry
и что за доска
Vladislav
https://en.wikipedia.org/wiki/Lasca https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation
Dmitry
шахматная или нет
kannie
Есть тестовый класс и шаблон . Шаблон должен пройти все тесты
kannie
Ласка это типа дамок
Vladislav
правда неясно, нотация модифицирована для этой игры
kannie
Шашки
kannie
*
kannie
7х7 поле
kannie
Только по белым полям можно двигаться
kannie
Поле шахматное типа
Vladislav
как записываются фигуры? Учитывая что они, по сути, стеки
kannie
w W bB большая офицер маленькая солдат
kannie
Солдат может ходить только прямо, офицер в оба направления по диагонали 1 клетку
kannie
И быть фигуру как пешка в шахматах
kannie
Офицером становятся при попадании на противоположную часть доски. Когда фигура бьет другую, битые кладутся под неё. То есть по нотации если белая сбила чёрную фигура будет wb если две то wbb
kannie
Так же можно исходить из того, что тестироваться будут только годные хода и состояния доски. То есть ошибки предотвращать не надо.
kannie
Фен стринг это стандартизированная нотация для полей для настольных игр шахмат, шашек и так далее. W w b B фигуры. , каждое пустое чёрное поле и / следующий ряд
Dmitry
https://hackage.haskell.org/package/hchesslib-0.1.0.0/docs/Chess-FEN.html
Max
> чат про хаскель > решают головоломки
kannie
Anonymous
А вы ругаете образование
Dmitry
это немецкое образование
Dmitry
они там в германии и второй компилятор хаскела пытаются написать. если не сдались
Anonymous
От ВУЗа к ВУЗу, наверное? Я имею знакомых только во Франции и там до доктората ничего интересного нет.
kannie
Ну да , это от универа зависит. Я даже не на информатика учусь на 2 курсе . У нас в основном Java , но в одном модуле Haskell разбираем.. только одна лекция на этом языке есть и вот домашку задали .