• JohnnyCanuck@lemmy.ca
    link
    fedilink
    arrow-up
    24
    ·
    edit-2
    2 days ago
    import builtins
    
    def HelloWorld(funcname):  
        getattr(builtins, funcname)("HelloWorld")
    
    HelloWorld("print")
    

    Edit, improved:

    import inspect, builtins
    
    def HelloWorld(funcname):
        caller = inspect.currentframe().f_code.co_name
        getattr(builtins, funcname)(caller)
    
    HelloWorld("print")
    
    • palordrolap@fedia.io
      link
      fedilink
      arrow-up
      5
      ·
      2 days ago

      Perl time:

      sub AUTOLOAD {
          our $AUTOLOAD=~s/.*:://;
          no strict;
          local $_=$_[0] and *STDOUT->$_($AUTOLOAD)
      }
      
      HelloWorld("print");
      

      Pro: You can Give HelloWorld any (syntactically valid) name you like and (as long as the parameter is "print", anyway) its name will be printed, no pre-declaration required.

      Con: The specified function inside the quotes has to be a method associated with a file descriptor.

  • marsza@lemmy.cafe
    link
    fedilink
    English
    arrow-up
    10
    ·
    2 days ago

    Sometimes I wish there were Easter eggs like this in programming languages. But then, people would just be using these Easter eggs for everything