@haskellru

Страница 120 из 1551
SimpleX
01.10.2016
17:56:39
:D

blkmrkt
01.10.2016
17:59:27
После этого: stack install —resolver lts-7 codex
пришлось еще добавить в extra-deps: machines-io и machines-directory чтоб собралось

SimpleX
01.10.2016
17:59:42
Зависимости кодекса?

blkmrkt
01.10.2016
17:59:52
угу

Google
SimpleX
01.10.2016
18:00:15
А покажи свой extra-deps?

Если кодекс собрался, попробуй снова поставить HVN

blkmrkt
01.10.2016
18:01:11
А покажи свой extra-deps?
ну вот там лишь кодекс и две его зависимости

хотел сказать спасибо большущее https://artyom.me, если он тут, за замечательную статью про aeson

Anatolii
01.10.2016
21:50:10
Да, там прямо хороший разбор по косточками

blkmrkt
01.10.2016
22:54:22
а почему hlint/ghc-mod не ловит некоторые ошибки, например типы ф-й и типы того что они фактически возвращают? Компиляция ломается, а iDE молчит. В то же время ошибки синтаксиса подсвечиваются

Anatolii
02.10.2016
08:59:01
А кто тебе ошибку выдаёт?

Ты этот код пробовал в ghci загружать?

Vladimir
02.10.2016
09:00:54
Может, проблема в отступах и надо рекорды с новой строки объявлять

Anatolii
02.10.2016
09:02:15
Ха

Оно ж конфликтует с id из Prelude

Я в сообщение вчитался

Google
Vladimir
02.10.2016
09:03:00
Я тоже

blkmrkt
02.10.2016
10:24:50
Оно ж конфликтует с id из Prelude
Ну и еще с id в тройке других записей в этом же модуле. Дело в том ведь что DuplicateRecordFields позволили мне это определить в одном файле, но как теперь недвусмысленно референснуть один из них тут же?

Vladimir
02.10.2016
10:26:16
"the renamer will determine which is meant at use sites."

походу оно само как-то должно

https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields/DuplicateRecordFields тут написано, Вроде, как можно, а как нельзя

с селекторами просто так все равно нельзя, походу(

к тому же, id из Prelude объявлен не в том файле же, где DublicateRecordFields, поэтому ренеймер не будет трогать функцию id из прелюда, отсюда и некомпиляция, походу

blkmrkt
02.10.2016
10:29:57
Вот на SO пост объясняет проблему, и в ответе вроде вариант который должен работать, но нифига подобного: https://stackoverflow.com/questions/37395098/how-to-disambiguate-selector-function

Vladimir
02.10.2016
10:30:35
а если сделать import Prelude hiding (id) ?

blkmrkt
02.10.2016
10:30:49
https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields/DuplicateRecordFields тут написано, Вроде, как можно, а как нельзя
Да читал, но там многовато сложного спича и ноль примеров для нуба ?

Vladimir
02.10.2016
10:30:51
чтобы id из прелюда не вылезал

и конфилик был только с твоими объявленными под DuplicateRecordFields функциями

конфликт*

blkmrkt
02.10.2016
10:31:20
Vladimir
02.10.2016
10:32:02
я сам не пользовал это расширение, сочинял уникальные имена для функций :DF

blkmrkt
02.10.2016
10:40:13
во всех сорцах включена прагма DuplicateRecordFields

я сам не пользовал это расширение, сочинял уникальные имена для функций :DF
а я вот чужой json парсю, и работает это только лишь если в разные файлы помещать каждый кусочек

Vladimir
02.10.2016
10:42:40
Я тоже парсил чужой, но просто руками писал инстансы fromJSON в таком случае. Не очень удобно, но у меня и приложение не очень большое было

дык, вроде (id t :: Int)

или что там

Google
Vladimir
02.10.2016
11:20:02
а, рекорд, к которому функция принадлежит, а не тип возвращаемого значения, пардом, ошибся

по-моему нет. Насколько я понял, эта штука работает так - если из контекста понятно, из какого рекорда ты функцию используешь, то на этапе компиляции ее переименовывают вместе со всеми использованиями. А если не понятно, то извиняй, чет не вышло)

Anatolii
02.10.2016
11:21:06
id t попробуй в скобки взчть

Vladimir
02.10.2016
11:21:32
т.е. в твоем случае должно быть понятно, что это за функция, в зависимости от типа t

Anatolii
02.10.2016
11:22:30
А попробуй сюда функцию полностью выложить

Там компилятор есть откуда тип t вывести?

Vladimir
02.10.2016
11:23:31
ну судя по верхним скринам, там кейс по Maybe t

поэтому, по идее, тип должен быть указан внутри Maybe

и понятен

Maybe task, т.е.

Anatolii
02.10.2016
11:26:47
Там на скрине выше в case стоит Just t а потом обращается к st

Vladimir
02.10.2016
11:27:51
тогда застыли в ожидании кода)

Вжик
02.10.2016
13:12:12
подкиньте группу по Scala

Nikolay
02.10.2016
13:12:33
https://telegram.me/scala_ru

Вжик
02.10.2016
13:18:21
благодарю

Mansur
02.10.2016
14:31:01
Хотелось printf или забыто (++)?

Kill me pls
04.10.2016
16:49:13
Ребят, кто понял теорию категорий?

Evgenij
05.10.2016
15:48:41
blkmrkt
05.10.2016
19:53:40
блин ну что за фигня, как к id то обратиться тут?

Anatolii
05.10.2016
20:02:19
Там printf надо

Google
Anatolii
05.10.2016
20:02:52
Тв спрятал id из Prelude?

blkmrkt
05.10.2016
20:03:01
Anatolii
05.10.2016
20:03:14
И что теперь пишет?

blkmrkt
05.10.2016
20:08:28
И что теперь пишет?
ну тож самое: Ambiguous occurrence ‘id’ It could refer to either the field ‘id’, imported from ‘VKAPI’ at app/Harvester.hs:34:1-22 or the field ‘id’, imported from ‘VKAPI’ at app/Harvester.hs:34:1-22 or the field ‘id’, defined at app/Harvester.hs:59:28 or the field ‘id’, defined at app/Harvester.hs:51:3

Anatolii
05.10.2016
20:09:11
Очень странно

Я проверял у себя

Все норм

Это ты stack build запустил?

blkmrkt
05.10.2016
20:11:18
ага, ghc-mod то же самое

Anatolii
05.10.2016
20:11:58
Похоже что у тебя не 8

Но я помню что ты говорил что 8

blkmrkt
05.10.2016
20:12:14
у меня 2 типа с id в этом же самом файле, и 2 типа с id из VKAPI, во всех файлах включено {-# LANGUAGE DuplicateRecordFields #-}

8.0.1

Anatolii
05.10.2016
20:12:29
Агп

Kit
05.10.2016
20:12:31
а какой сейчас тип у id? раз ты спрятал его из Prelude

Anatolii
05.10.2016
20:12:35
Так не прокатит

blkmrkt
05.10.2016
20:12:46
>stack ghc — —version >The Glorious Glasgow Haskell Compilation System, version 8.0.1

Anatolii
05.10.2016
20:12:49
Оно только в пределах 1го модуля может быть

Хотя погоди

Странно это все

Google
blkmrkt
05.10.2016
20:13:29
угу, странно

вот в этом треде расписан именно такой же пример с которым у меня проблема, но ОП пишет внизу следующее: Of course it can easily be fixed by adding a type annotation but ideally I would rather not use such an annotation in this case. Не вдупляю как еще можно добавить аннотацию типа к id.

Anatolii
05.10.2016
20:14:38
А попробуй в модуле vkapi

Написать функцию которая к id обращается

Anatolii
05.10.2016
20:14:58
Ещё вариант

Можно попробовать сделать модуль

И в него за импортить эти два

А потом этот модуль уже за импортить туда где ты хочешь им воспользоваться

blkmrkt
05.10.2016
20:17:24
Написать функцию которая к id обращается
Ambiguous occurrence ‘id’ It could refer to either the field ‘id’, defined at src/VKAPI.hs:118:3 or the field ‘id’, defined at src/VKAPI.hs:93:3

Anatolii
05.10.2016
20:17:49
Та беда

Страница 120 из 1551