Не могат да се въвеждат многоредови изрази в GHCi

let x=1
    y=2
    z=3

не работи в GHCi, което ме принуждава да използвам let {x=1;y=2;y=3} вместо това. Как мога да поправя този проблем?


person ThePiercingPrince    schedule 10.08.2013    source източник


Отговори (1)


В документацията се казва:

GHCi също има многоредов режим, активиран от :set +m, в който GHCi открива автоматично, когато текущият оператор е недовършен и позволява добавянето на допълнителни редове. Многоредовият вход завършва с празен ред.

Многоредовият режим кара GHCi да се държи много като напр. интерпретатора на Python:

Prelude> :set +m
Prelude> let x = 1
Prelude|     y = 2
Prelude|     z = 3
Prelude|
Prelude> (x, y, z)
(1,2,3)

Този скрит скъпоценен камък е прекрасен за игра с четлив код!

Ако искате това да е поведението по подразбиране, можете да създадете .ghci файл във вашата домашна директория с ред, казващ :set +m. (Сега, когато това се появи, всъщност го направих.)

person kqr    schedule 10.08.2013