→ Antwort auf Is it in this case : http://identi.ca/url/75523035 (see : [01:16]1 — Julien-Claude Fagot, die eine Antwort war auf One more reason why you should not use “from bla import foo”: print __import__(obs.__class__.__module__).__file__ — ArneBab
Datei: bla.py
def foo():
print "bla"
Interaktiver Test:
>>> import bla >>> bla.foo() bla >>> def fu(): ... print "fu" ... >>> fu() fu >>> from bla import foo >>> foo() bla >>> bla.foo = fu >>> bla.foo() fu >>> foo() bla
Profifrage: Was passiert, wenn du from bla import foo nach bla.foo = fu ausführst?
dsop: if you use 'bla.foo', then yes, you can assign to bla.foo and you'll see the change. If you do 'from bla import foo', then your locally imported 'foo' will not 'see' changes to bla.foo. ↩
» Adding namespace support to emacs lisp in a macro with just 15 lines of code - it’s things like this which make lisp feel like the mother of all languages.«1
(defmacro namespace (prefix &rest sexps) (let* ((naive-dfs-map (lambda (fun tree) (mapcar (lambda (n) (if (listp n) (funcall naive-dfs-map fun n) (funcall fun n))) tree))) (to-rewrite (loop for sexp in sexps when (member (car sexp) '(defvar defmacro defun)) collect (cadr sexp))) (fixed-sexps (funcall naive-dfs-map (lambda (n) (if (member n to-rewrite) (intern (format "%s-%s" prefix n)) n)) sexps))) `(progn ,@fixed-sexps)))
(provide 'namespace)
(require 'namespace) (namespace foo (defun bar () "bar") (defun foo (s) "foo"))
(foo-foo (foo-bar))
(Der Hauptteil dieses Codes stammt von vpit3833 und konr und ich darf ihn verwenden. Er funktioniert dank einer Korrektur von Stefan. Er ist nicht perfekt, aber da er mir v.a. dazu dienen soll, meine eigenen Codeschnipsel besser zu organisieren, sollte ich das verschmerzen können)
Der Code mag schwer lesbar sein, hat aber riesige Implikationen: Du als einfacher Endnutzer des Lisp-Interpreters kannst Namespace-Support hinzufügen, ohne dass die Hauptentwickler dafür irgendetwas machen müssen.
Der Code stammt größtenteils aus einer Diskussion auf Stackoverflow. ↩
→ Kommentar zum Artikel Open Source ist tot von Stefan Wienströer, in dem er sich über anmaßende Benutzer beklagt, die von ihm gratis Telefonsupport fordern….
Hi Stefan,
Für meine Plotroutinen brauche ich oft Funktionen, die eine Liste an Messwerten durchgehen und nur diejenigen zurückgeben, die einem bestimmten Kriterium entsprechen. Wenn dabei die Anzahl der Messwerte in die Millionen geht, kann alleine schon die Liste der ungefilterten Messwerte den Arbeitsspeicher des Rechners sprengen.
Ich könnte jetzt einfach eine Funktion schreiben, die alle Werte liest, filtert und nur die Relevanten zurückgibt.
Das könnte dann etwa so aussehen:
Der Flattr-Knopf ist freie Software! Wie es dazu kam:
Vor 2 Monaten habe ich in der Flattr-Gruppe gesagt, dass es für mich ein Problem ist, dass die Flattr-Knöpfe keine freie Software sind, und gefragt, ob jemand eine freie Alternative kennt.
Ich bin gerade auf das Paper hier gestoßen:
“A Multi-Language Computing Environment for Literate Programming and Reproducible Research” (PDF)
Es beschreibt schön, was mit emacs org-mode möglich ist. Dazu gehören so spannende Punkte wie im Dokument mitgelieferter Quellcode, dessen Ergebnisse automatisch eingebunden werden, so dass die Dokumente aktuell bleiben können.
→ Kommentar zu Keine guten Noten für Schulcomputer aus der taz.
Die Studie zum Erfolg des OLPC bescheinigt, dass Kinder mit OLPC intelligenter und sprachgewandter sind als Kinder ohne OLPC. Sie sind ihren Altersgenossen fast ein halbes Jahr vorraus. Und das nach 15 Monaten. Das heißt sie haben sich in 15 Monaten so weit entwickelt wie andere in 20 Monaten!
Sehr geehrte Taz-Redaktion,
Update: Ja, geht! Einfach den entsprechenden Redakteur direkt anschreiben. Sie haben individuelle GnuPG Schlüssel.
Sone1 allows fast, identi.ca-style microblogging in Freenet. This is my wrapup on a discussion on the steps to take until Sone can become an integral part of Freenet.
Is close to realtime.
Downloads all IDs and all their posts and replies → polling which won’t scale; short term local breakage.
Uploads all posts on every update → Can displace lots of content. Effective Size: X*M, X = revisions which did not drop out, M = total number of your messages. Long term self-DDoS of freenet.
Dank dem GNU Head redrawn und Neo-Tastatur.de habe ich eine Tastatur, die meine Begeisterung für freie Software zeigt: Mit GNU, Plussy und Infinite Hands. Außerdem enthält sie die für wissenschaftliches Schreiben praktischen mathematischen und griechischen Zeichen, die Neo bietet. Aber genug geschrieben: Geben wir der Tastatur das Rampenlicht, das sie verdient ;-)
Diese Seite nutzt Drupal.
Design: Arne Babenhauserheide.
Werke von Arne Babenhauserheide.
Lizensiert unter freien Lizenzen.
![]()