Zastanawiam się, czy możliwe jest zachowanie przypisanych wartości w ghci po przeładowaniu modułu?ghci: zachowaj zdefiniowane wartości w zakresie po przeładowaniu modułu
Na przykład przypisać wartość w ghci:
ghci> let x = 1
lub
ghci> x <- getLine
Po wprowadzeniu :r
aby odświeżyć istniejący moduł x
nie jest już w zasięgu. Czy generalnie możliwe jest utrzymanie przydziału, jak na przykład w tłumaczu Pythona? (to jest naprawdę wygodne ...)
Nawet jeśli faktycznie każda linia w ghci reprezentuje funkcję, która jest (monadycznie) związana do następnej wciąż zastanawiam się, czy utrzymywanie tego stanu jest możliwe.
Nie sądzę, że ghci może to zrobić, ale jest całkiem możliwe, aby zrobić interaktywny Haskell, który zachowuje wiązania. Ponadto, nie ma potrzeby użycia polecenia: reload. – augustss
Hum zależy od tego, jak zmienna jest związana z przestrzenią nazw. Niedawno zacząłem korzystać z interpretera interaktywnego Pythona i znalazłem tę funkcję całkiem wygodnie. Jeśli zwiążesz zmienną 'x = 3', powiedzmy w module' test', to ta zmienna jest w zasięgu poprzez 'test.x'. Jeśli usuniesz 'x' w' teście' i przeładujesz moduł 'test.x' zniknie, podczas gdy na przykład poprzednio zdefiniowana zmienna' x' na najwyższym poziomie jest nadal w zasięgu. – JHannes