Szybki sposób na pisanie zabawnych postaci ze Scalaz?

13

Czy jest jakiś łatwy i szybki sposób na pisanie zabawnych postaci (takich jak ⊛, ≟, ∘, ∨ itd.) Z Scalaz? (Używam Ubuntu 9.04)

quack quixote
źródło
4
Naprawdę nie rozumiem, dlaczego projektanci bibliotek wybrali takie zabawne symbole. Jakieś ważne powody?
2
Zgoda, dopóki nie zobaczymy przynajmniej obsługi klawiatury
Istnieje wiele sposobów drukowania zabawnych postaci, ale większość z nich jest specyficzna dla systemu operacyjnego i dystrybucji. Myślę, że takie pytania powinny być lepiej zadawane superużytkownikowi.
P Shved
1
@Pavel: Oczekuję odpowiedzi od samych twórców Scalaza. Dlatego opublikowałem pytanie na StackOverflow.
Spójrz na xmodmap.
Debilski

Odpowiedzi:

12
  1. Użyj aliasów ASCII dostarczonych przez bibliotekę. Na przykład |+|jest aliasem dla .
  2. Korzystaj z IntelliJ IDEA z tymi aktywnymi szablonami. Następnie możesz napisać, x mapmap<TAB>aby uzyskać x ∘∘. Instrukcje instalacji są omówione w tym ostatnim pytaniu . IntelliJ ma darmową wersję Community Edition i jest to mój osobisty wybór i zalecenie dotyczące kodowania Scala.
  3. Uważam, że skrótem w Gnome do wprowadzenia znaku Unicode jest CTRL-SHIFT-U, kod szesnastkowy, Enter.
  4. Utwórz szablony dla swojego ulubionego edytora.

Po co w ogóle używać tych symboli?

  1. Opieramy się na wzorcu Pimp-my-Library, ale zamiast owijać jeden konkretny typ, zapewniamy dodatkowe funkcje, które działają dla każdego typu z odpowiednimi instancjami klasy typu. Używanie niestandardowych znaków minimalizuje konflikty nazw z metodami zapewnianymi przez typy oryginalne.
  2. Niektóre operacje, takie jak mapa Functor, powiązanie Monadic i zastosowanie aplikacyjnego Functora, są naprawdę powszechnie stosowane i podstawowe. Scala wciela niektóre z nich w język z zrozumieniem. Dajemy Ci więc możliwość korzystania z wersji Scalaz z minimalnym bałaganem składniowym, prawie tak jakby były częścią samego języka.

Przykład:

some(7) ∘ {1 +} 
List(1, 2, 3) ∗ {x => List(7, x)} 
case class Person(age: Int, name: String)
some(10) ⊛ none[String] apply Person.apply
retronim
źródło
Nie wiedziałem o aktywnych szablonach. Dzięki.
1
Czy możesz polecić jakieś czcionki programowe, które obejmują wszystkie te znaki Unicode? - Osobiście chciałbym użyć czcionki, która ma znaki o zmiennej szerokości (nie wyrównuję już kodu w kolumnach), ale niestety IntelliJ IDEA może dobrze obsługiwać ruchy kursora tylko dla czcionek o stałej szerokości.
Madoc,
jest to trochę poza zakresem, ale dlaczego znaki specjalne (a nawet | + |), co jest złego w nadawaniu sensownej nazwy funkcji? Próbuję dostać się do scalaz, ale za każdym razem, gdy widzę przykład some(7) ∘ {1 +}, po prostu niemożliwe jest zrozumienie, co to znaczy. Można argumentować, że ma to na celu zapisanie naciśnięć klawiszy, ale jeśli trzeba wpisać „mapmap <TAB>”, aby uzyskać odpowiedni znak, dlaczego po prostu nie wywołać funkcji mapmap?
Mortimer
0

Spróbuj tego -

Upewnij się, że numlock jest wyłączony.
Przytrzymaj klawisz ALT
Na klawiaturze numerycznej - naciśnij, +a następnie dziesiętny numer Unicode żądanego znaku.
Zwolnij klawisz ALT

Jest to stara sztuczka, która działała w systemie DOS z kodami ASCII (bez +) i działa w oknach w polach edycyjnych z Unicode. Myślę, że powinien działać na niektórych linuksach.

Możesz także spróbować metody opisanej tutaj .

buta
źródło
2
Nie nazwałbym tego szybkim. I nie pamiętam liczb Unicode tak wielu znaków. Szukam czegoś szybszego i mniej wymagającego.
0

W Linuksie jest łatwiej niż w jakimkolwiek innym systemie operacyjnym, który znam.

Sprawdź ten link w celu uzyskania tła / szczegółów: https://help.ubuntu.com/community/ComposeKey

Najpierw możesz nacisnąć Ctrl + Shift + U, a następnie kod Unicode. Na przykład Ctrl + Shift + U + 2203 = ∃. To może nie być tak wygodne, ale będziesz potrzebować go do następnego kroku.

Lepszym sposobem jest użycie klawisza tworzenia, AKA Multi_key. Jak opisano w powyższym artykule, możesz komponować znaki za pomocą Multi_key + char1 + char2. Na przykład Multi_key 'e to é.

Uważam, że klawisz Caps Lock stanowi wspaniały Multi_key. Możesz to ustawić w Preferencjach systemowych -> Klawiatura -> Układ -> Opcje.

Aby utworzyć własne sekwencje klawiszy. utwórz plik ~ / .XCompose i dodaj wpisy, takie jak

: „∃”

(za pomocą sztuczki Ctrl + Shift + U lub po prostu kopiuj / wklej)

Wyloguj się i zaloguj ponownie (lub, w celu przetestowania, po prostu uruchom ssh -X localhost xterm).

cayhorstmann
źródło