Frage

Ich genieße das puppet Vereinbarungsmodell. Ich möchte versuchen, mehr davon in meinen Code zu integrieren.

I-Programm in Python zur Zeit, aber, und ich neige dazu, unbedingt zu denken, während dies zu tun. Es ist genau wie mein Problem mit Grafikdesign: Ich weiß, was ich in einem Endprodukt sehen möchten, haben aber keine Ahnung, wie es zu montieren.

Wie ich die Dinge strukturieren, so dass der Code würde deklarative sein? Was erste Schritte unternommen werden, wenn die Lösung ist erkennbar zu sein „deklarative?“

Funktional, deklarative und Imperative Programmierung ich habe gerade gelesen, dieses, bringt Einsicht, ein wenig.

Zu wenig aber kann es nicht in Worte fassen genau, meine Verwirrung: (

EDIT: Worte haben kommen: Die für Erklärung angeführten Beispiele immer in Bezug auf einen anderen hohen Niveau, was gegeben werden:

Regexen deklarative ist, sicher, aber Sie machen den Motor aus C

Jetzt ist deklarative, sicher, aber es ist in C geschrieben.

Puppet mainifests sind deklarative natürlich, aber die Ruby-Code ist es nicht.

Also, an welchem ??Punkt muß ich sagen: „Ok, hier die Methoden sind, jetzt kann ich den deklarativen Teil beginnen“

War es hilfreich?

Lösung

Wenn in einer funktionalen Sprache, schreibt in einem funktionalen Stil, wenn sie in in einer imperativ Sprache schreibt in einem imperativ Stil, und wenn sie in einer deklarativen Sprache, schreibt in einem deklarativen Stil.

Wie pro oben (ohne all „cross styles“ erlaubt), wenn Sie in einer Sprache schreiben, schreiben Sie im Stil einer Sprache. Im Fall des Schreibens ‚declartively‘ in einer ‚zwingenden‘ oder ‚funktional‘ Sprache würde dies in der Regel brechen, um eine deklarative DSL Schreiben und / oder API ohne tatsächlich den grundlegenden Stil zu ändern verwendet auszusetzen (oder sogar Kleber), die deklarativen freundlich DSL / API.

Zum Beispiel make (oder eine beliebige Anzahl von XML-Sprachen wie ant) sind nur deklarativen DSLs (mit einigen Unschärfe). Die Host-Sprache ist nicht wichtig. Dies kann für so ziemlich alle Turing komplette Hostsprachen verallgemeinert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top