← All posts tagged code

segfault

Вот в никсе применение функций через пробел, как в хаскеле, но и элементы списка тоже через пробел (запятых нет), в итоге код вида

    nixpkgs.overlays = [
      import ../overlays/nixpkgs-stackage
    ] ;

Падает с ошибкой, ну ладно бы просто с ошибкой, она выглядит вот так.

error: infinite recursion encountered, at undefined position (use '--show-trace' to show detailed location information) building Nix... error: infinite recursion encountered, at undefined position (use '--show-trace' to show detailed location information) building the system configuration... error: infinite recursion encountered, at undefined position (use '--show-trace' to show detailed location information) 

И после этого ошибки типизации в хаскеле не понятные? Да я ебал.

segfault

А я тут хаскельным квикчеком нашёл весёлый кейс

> d = new Date(2006, 02, 26, 02, 28, 53);
Sun Mar 26 2006 03:28:53 GMT+0600 (+06)
> d = new Date(2006, 02, 26, 0, 0, 0);
Sun Mar 26 2006 00:00:00 GMT+0500 (+05)
> d = new Date(2006, 02, 26, 1, 0, 0);
Sun Mar 26 2006 01:00:00 GMT+0500 (+05)
> d = new Date(2006, 02, 26, 2, 0, 0);
Sun Mar 26 2006 03:00:00 GMT+0600 (+06)
> d.getHours()
3

Работает в последнем хромаче, в фоксе, наоборот, час становится на 1 меньше. Гуголь чет ни чего не говорит по этому поводу. Я первооткрыватель?

segfault

% nslookup github.com
;; Got SERVFAIL reply from 8.8.8.8, trying next server
Server:         127.0.0.1
Address:        127.0.0.1#53

** server can't find github.com: SERVFAIL

Регуряно испытваю проблемы с днс, в чем может быть проблема? Сначал думал на нетворкманагер, но Got SERVFAIL reply from 8.8.8.8, это вообще возможно?

segfault

reactSelect_
  :: (ToJSON a, CallbackFunction handler (SelectOption a -> handler))
  => SelectParameters handler a
  -> ReactElementM handler ()
reactSelect_ opts = foreign_ "Select" opts mempty
  where
    opts :: [PropertyOrHandler handler]
    opts = [callback "onChange" (_ opts)]


-- Вот что значит начать изучать джяваскрипт, пол часа бился, не мог понять, почему opts имеет не то тип, который я ожидал.

segfault

Невероятные приключения единиц измерения:

-- | Absolute size unit convertion rate to centimeters.
absoluteUnitRate :: AbsoluteUnit -> Rational
absoluteUnitRate Centimeter = 1
absoluteUnitRate Inch = 2.54
absoluteUnitRate Millimeter = 0.1
absoluteUnitRate Pica = 12 * absoluteUnitRate Point
absoluteUnitRate Point = 1 / 72 * absoluteUnitRate Inch -- ну охуеть теперь!

segfault

xmonad-contrib % grep -e 'fi\ ::' `find -iname '*.hs'`
./XMonad/Util/Font.hs:fi :: (Integral a, Num b) => a -> b
./XMonad/Util/NoTaskbar.hs:fi :: (Integral i, Num n) => i -> n
./XMonad/Actions/Navigation2D.hs:fi :: (Integral a, Num b) => a -> b
./XMonad/Layout/Fullscreen.hs:  let fi :: (Integral i, Num n) => i -> n
./XMonad/Layout/AvoidFloats.hs:fi :: (Integral a, Num b) => a -> b
./XMonad/Layout/Dwindle.hs:        fi :: (Num b, Integral a) => a -> b

Синоним для `fromIntegral` ... блять ...

segfault

А в хаскеле еще не обсуждается нечто типа closed typeclasses? Чтобы вот такое вот

-- | Typeclass for sets and elements.
class (i ~ (Index e els)) => HGet els e i where
  -- | Gets any data from HSet for you
  hget :: HSet els -> e

instance HGet (e ': els) e 'Z where
  hget (HSCons e _) = e

instance (i ~ (Index e els), ('S i) ~ (Index e (e1 ': els)), HGet els e i) => HGet (e1 ': els) e ('S i) where
  hget (HSCons _ els) = hget els

Делать без третьего параметра. Тут не внапряг, а в других случаях бывает сильно сложнее, и бомбит еще больше. 
Ну короче, выбирать инстансы сверху вниз, как это в closed typefamilies делается. Вот это было бы очень круто, я считаю.