Dit zijn de opdrachtomhelzingen die kunnen worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online-emulator of MAC OS online-emulator
PROGRAMMA:
NAAM
knuffels, runhugs, ffihugs - Hugs 98, functioneel programmeersysteem
KORTE INHOUD
hugs [ opties ] [ modules ]
knuffels [ opties ] module [ betoogt ]
knuffels [ opties ] module [ compiler_argument
PRODUCTBESCHRIJVING
Hugs is een tolk voor Haskell, een standaard niet-strikte functionele programmeertaal.
Hugs implementeert bijna de hele Haskell 98-standaard, behalve wederzijds recursief
modules. De naam Hugs is een geheugensteuntje voor de Haskell Gebruikersnaam gofer Systeem.
De tolk wordt gestart met behulp van de hugs commando. Na verwerkingsopties laadt het de
standaardmodule Inleiding en alle andere modules die op de opdrachtregel worden vermeld.
Elke Haskell-module wordt opgeslagen in een apart bestand. Bij het laden van een module naam, Hugs
vervangt elke `.'in naam met een `/' en zoekt in elk van de mappen tijdens het zoeken
pad (zie -P voor OPTIES) voor de bestanden naam.hs en naam.lhs. (De erkende achtervoegsels
kan worden gewijzigd met behulp van de -S optie, beschreven onder OPTIES.) Het probeert ook naam een
letterlijke bestandsnaam. Bestanden die eindigen op ".lhs" worden behandeld als geletterde scripts.
OPTIES
Sommige opties zijn omgeschakeld met + or - om ze respectievelijk in of uit te schakelen.
Taal conformiteit
+ 98 Accepteer alleen Haskell 98 (kan niet worden gewijzigd binnen Hugs; standaard: aan). Dit draaien
off maakt verschillende speciale Hugs-extensies mogelijk, die worden beschreven in de Hugs 98
Gebruiker Handbak.
+o Overlappende instanties toestaan (een Hugs-extensie; standaard: uit)
+O Sta onveilige overlappende instanties toe (een Hugs-extensie; standaard: uit)
+H Sta `hier documenten' toe (een Hugs-extensie; standaard: uit)
Module het laden
+l Behandel bestanden waarvan de naam op geen van beide eindigt.hs' noch `.lhs' als geletterde scripts
(standaard: uit)
+. Punten afdrukken om de voortgang weer te geven tijdens het laden van modules (standaard: uit)
+q Druk niets af om de voortgang weer te geven tijdens het laden van modules (standaard: aan)
+w Altijd laten zien welke bestanden zijn geladen (standaard: uit)
Uitdrukking evaluatie
+s Print aantal reducties/cellen na elke evaluatie (standaard: uit)
+t Afdruktype na elke evaluatie (standaard: uit)
+T Pas de standaardregels van Haskell toe vóór afdruktypen (standaard: uit)
+g Druk het aantal herstelde cellen af na elke afvalverzameling (standaard: uit)
+Q Namen kwalificeren bij afdrukken (standaard: uit)
+k Vriendelijke fouten volledig weergeven (standaard: uit)
+u Gebruik "tonen" om resultaten weer te geven (standaard: aan)
+I Resultaten van IO-programma's weergeven (standaard: uit)
parameters
Andere opties (waarin - kan worden vervangen door +, de keuze maakt geen verschil) zijn:
-hnum Heapgrootte instellen (kan niet worden gewijzigd binnen Hugs; standaard: 250K)
-pstr Stel prompttekenreeks in op str (standaard: `%s> '). Elk %s in de prompt wordt vervangen
door de naam van de huidige module.
-rstr Stel herhaal laatste uitdrukkingsreeks in op str (standaard: $$).
-Pstr Stel het zoekpad voor bronbestanden in op str, wat een door dubbele punten gescheiden lijst zou moeten zijn van
mappen. Een null-invoer in deze lijst wordt vervangen door de vorige zoekopdracht
pad; een nul str betekent het standaardpad. Elk voorkomen van {knuffels} in deze snaar
wordt uitgebreid naar de Hugs-bibliotheekdirectory, namelijk /usr/lib/knuffels. Evenzo {Thuis}
wordt uitgebreid naar uw thuismap (de waarde van de HOME omgevingsvariabele).
Een vermelding van het formulier `directory/*' betekent alle directe submappen van
directory. De standaardwaarde is
.:{Home}/lib/hugs/packages/*:/usr/local/lib/hugs/packages/*:{Hugs}/packages/*:{Hugs}/bibliotheken
-Sstr Stel de door dubbele punten gescheiden lijst met achtervoegsels van bronbestanden in op str (standaard: .hs:.lhs). De
null-invoer in deze lijst wordt vervangen door de vorige achtervoegsellijst; een nul str
betekent de standaardlijst.
-Estr Gebruik editor instelling gegeven door str (standaard: de waarde van de EDITOR milieu
variabel). Eventuele voorvallen van %d en %s in de editor optie worden vervangen door de
respectievelijk het startregelnummer en de naam van het te bewerken bestand. Een gewone
instelling is "vi +%d %s".
-cnum Stel de beperkingslimiet in de typecontrole in op num (standaard: 40).
-Fcmd Stel preprocessorfilter voor bronbestanden in op cmd (standaard uitgeschakeld). In plaats van
een bronbestand direct lezen, Hugs leest de standaarduitvoer van cmd rennen met
de naam van het bronbestand als argument.
-Xstr De snaar str wordt geïnterpreteerd als een optietekenreeks. Dit is bijvoorbeeld handig
voor het doorgeven van meerdere argumenten aan knuffels een #! scripts.
COMMANDO'S
Nadat de interpreter is geladen, zijn de volgende opdrachten beschikbaar:
:laden [modules] wis alle modules behalve de prelude en laad de gespecificeerde modules.
:Ook modules lees aanvullende modules.
:herladen herhaal laatste laden opdracht.
:bewerking filet Bewerken filet.
:bewerking laatste bestand bewerken.
:module module set-module voor het evalueren van uitdrukkingen.
uitdrukken uitdrukking evalueren.
:type uitdrukken afdruktype van uitdrukking.
:? geef deze lijst met opdrachten weer.
:set opties opdrachtregelopties instellen.
:set hulp bij opdrachtregelopties.
:namen [patronen] lijstnamen die momenteel binnen het bereik vallen en overeenkomen met een van de shell-achtige patronen.
:info namen beschrijf benoemde objecten.
:bladeren modules blader door namen geëxporteerd door modules.
:vinden naam bewerk bestand met de definitie van naam.
:!commando schelp ontsnappen.
:CD dir map wijzigen.
:gc huisvuilophaling afdwingen.
:versie print Hugs-versie.
: stoppen exit Hugs-tolk.
Elke opdracht kan worden afgekort tot :c WAAR c is het eerste teken in de volledige naam. Op
de meeste systemen kunt u ook afsluiten Hugs door het einde-van-bestand-teken (^D) te typen.
Merk op dat de interrupt-toets (^C op de meeste systemen) op elk moment tijdens het gebruik kan worden gebruikt
Hugs om het proces van het inlezen van een bestand met functiedefinities of de
evaluatie van een uitdrukking. Wanneer de onderbreking wordt gedetecteerd, Hugs drukt de string af
"{Onderbroken!}" en drukt de prompt af zodat verdere opdrachten kunnen worden ingevoerd.
ZELFSTANDIG PROGRAMMA'S
De knuffels commando is een tolk voor een uitvoerbaar Hugs-script, dat een
Haskell Hoofd moduul. Bijvoorbeeld het uitvoerbare bestand hallo kan de regels bevatten
#!/usr/bin/runhugs +l
> module Hoofd WAAR
> hoofd- = putStr "Hallo, Wereld\n"
Wanneer dit bestand wordt uitgevoerd, knuffels zal een beroep doen op de hoofd- functie. Alle argumenten die worden gegeven
de opdrachtregel is beschikbaar via krijgArgs.
Merk op dat #! geeft slechts één orgument door aan het script. De -X optie kan worden gebruikt om te krijgen
hier omheen.
C INTERFACE
Op architecturen die dynamische koppeling ondersteunen, Hugs implementeert het deel van de Haskell 98
Vreemd Functie Interface (FFI) waarmee Haskell-functies C-routines kunnen aanroepen. (Op
de x86-, PowerPC- en Sparc-architecturen, allemaal vreemd importerens worden ondersteund; op anderen,
Slechts statisch invoer wordt geleverd.) Modules die dergelijke bevatten vreemd verklaringen moeten zijn
samengesteld met behulp van de knuffels commando voor gebruik met hugs. Extra argumenten voor de C
compiler kan worden geleverd via compiler_argumentS. Stel bijvoorbeeld dat je wat C hebt
functies in test.c en enkele FFI-verklaringen voor die functies in Test.hs en de code
in test.c mee moet worden gecompileerd -lm. Dan compileer je de module met de
commando
knuffels Test.hs test.c -lm
die een objectbestand genereert Test.zo. Wanneer dan hugs ladingen Test.hs, het zal ook laden
Test.zo.
In de standaard FFI, elk vreemd importeren declaratie moet een C-headerbestand noemen
met daarin het prototype van de functie. Omdat dit vaak omslachtig is, knuffels
biedt de volgende extra optie:
-istr Geef een include op voor het gegenereerde C-bestand. De include-tekenreeks moet zijn
iets dat kan volgen "#include" in een C-programma, zoals in
knuffels '-i ' '-i"mijndefs.h"' Test.hs test.c -lm
MILIEU
KNUFFELS
Extra opties voor hugs, verwerkt voordat iets op de opdrachtregel wordt gegeven.
KNUFFEL
De map van de Hugs-bibliotheek (standaard: /usr/lib/knuffels).
EDITOR De standaardeditor, als -E wordt niet gegeven.
SHELL Wordt gebruikt om de shell op te geven die wordt aangeroepen door de :! opdracht.
Gebruik knuffels online met behulp van onworks.net-services