Size: a a a

2021 June 23

к

кана in Haskell
ща
источник

к

кана in Haskell
а что значит не получилось собрать, какая ошибка была?
источник

ДК

Дима Ковалев... in Haskell
сейчас еще раз попробую и скину
источник

D

Dreamerinnoise in Haskell
следующая книга по хаскелю должна быть servant in action
источник

к

кана in Haskell
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE ExistentialQuantification #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}

import Data.Proxy
import GHC.TypeLits

data Server (s :: Symbol) = Server

run :: forall s. KnownSymbol s => Server s -> IO ()
run Server = do
 let x = symbolVal (Proxy @s)
 print x

data SomeServer = forall s. KnownSymbol s => SomeServer (Server s)

make :: String -> SomeServer
make x = case someSymbolVal x of
 SomeSymbol (Proxy :: Proxy x) ->
   SomeServer (Server :: Server x)

main :: IO ()
main = do
 case make "hello" of
   SomeServer server -> run server
источник

к

кана in Haskell
вот тут я эмулировал некий Server, который хранит строку на тайплевеле

даже я описал тип SomeServer, который хранит тип сервера с какой-то строкой на тайплевеле

потом я написал make, который из строки создает сервер со строкой на тайплевеле

и в main я просто запустил сервер из make + рантаймная строка
источник

к

кана in Haskell
(по факту конечно строка остается на термлевеле, она в KnownSymbol хранится)
источник

ДК

Дима Ковалев... in Haskell
Спасибо большое, после добавления Proxy перед @(WeatherAPI var') билд прошел, пойду тестить
источник

ДК

Дима Ковалев... in Haskell
вот так это вышло
источник

MK

Maxim Koltsov in Haskell
Ну и чем это отличается от того что я написал?)
источник

MK

Maxim Koltsov in Haskell
Порядком типоаргументов у serve разве что
источник

MK

Maxim Koltsov in Haskell
А вообще, я поражён что это реально заработало
источник

ДК

Дима Ковалев... in Haskell
перед @(Type) не было Proxy, ошибка вылезала, а я не знал как её исправить
источник

MK

Maxim Koltsov in Haskell
У меня ещё ни разу не вышло применить someSymbolVal для чего-то полезного
источник

ДК

Дима Ковалев... in Haskell
пхахахахахах
источник

ДК

Дима Ковалев... in Haskell
Я первый раз вообще сервер пишу, у меня в задании было требование такую функцию реализовать. Я столько документации облазил, чтобы понять как это можно сделать, что у меня уже шок от количества этих расширений, модулей, типов, кайндов и прочего
источник

ДК

Дима Ковалев... in Haskell
тяжело джунам в Хаскеле
источник

A

Andrey in Haskell
ничего, шок пройдёт
источник

ДК

Дима Ковалев... in Haskell
не представляю что вообще чувствуют люди, которые про моноиды первый раз услышали в Хаскеле
источник

MK

Maxim Koltsov in Haskell
А ты где первый раз услышал?
источник