前14世紀頃には「アピル」と呼ばれる集団がパレスチナ（カナン）で略奪行動を行っていたことがエジプトの文書で確認できる。このアピルは、シリアやメソポタミアの文書では「ハピル」ないしは「ハビル」とも呼ばれており、民族名を指すのではなく、奴隷や傭兵にもなった非土着系のアウトロー的な社会階層を指す言葉である。多くの学者がこのアピルとその後のヘブライ人（エジプト語でイブリー）のカナン進出に何らかの関係があったと考えている。紀元前1207年の出来事を記したエジプトの石碑には「イスラエル人」についての言及が認められ、これがイスラエルという部族集団の実在を確認できる最古の文献である。この部族集団の出自については不明な点が多い。紀元前1200年頃というのは丁度「海の民」が南西の海岸平野からシリアやカナン地方に侵入してきた頃であり、それを代表するのが旧約聖書にイスラエル人のライバルとして登場するペリシテ人である。イスラエル人はこれと同時期に山岳地域からカナン地方に進出してきてペリシテ人と衝突を繰り返した。最近の考古学調査では、ガリラヤ山地、中央山岳地帯、南部ユダヤのネゲブ北部などに前1200年頃から居住地域が急増し、西部に勢力を広げていったことが確認されている。この動きの中にイスラエル人たちの部族が含まれていたことは間違いが無い。この山岳地域の居住者達の出自に関しては様々な説が唱えられている。ウルからハランを経てやってきたアブラハムがそうであったように、外部からやってきた遊牧民が定住したとする説（しかし、ウルのような南部メソポタミアからの移住は考えにくいのでメソポタミア北西部からの移住だとする）、カナン諸都市の周辺部に居た半遊牧民達が山地に逃れて定住したとする説、カナンの諸都市の奴隷や下層民が都市を逃れて定住したとする説、アラム地方から移住してきたとする説など様々である。おそらくは多様な出自を持つ人々であり、この中からヤハウェ神信仰を共有する部族がまとまってイスラエル部族連合が形成されたのであろうと考えられている。
神話学、民族学、考古学、古代文献学などの見解によれば、創世記などのエピソードの多くには他文化の神話・説話との共通性が見られるという。ことに19世紀になってアッシリア時代の遺跡から出土した粘土板に記述されたギルガメシュ叙事詩にはノアの箱舟とそっくりの挿話が記載されていたことは有名である。創世記の執筆に当たっては、オリエント地域で共有されていた神話・民話・説話（たとえばシリアのウガリット遺跡から発掘された粘土板文書に記されたウガリット神話）が利用されたものと推測されているが、同時に旧約聖書のオリジナリティも多くの研究者は指摘している。
今日の研究者の多くはヘブライ語聖書、旧約聖書の記述がそのまま歴史的事実を示すとは考えていない。旧約聖書は複雑な編纂過程を経ているし、各文書の執筆・編纂時期もよく分かっておらず、彼らの推定する実際の歴史も合意されていることはさほど多くない。
ユダヤの神話（ユダヤのしんわ、Jewish mythology）。ユダヤ人の神話についての項目。ユダヤ教のヘブライ語聖書、キリスト教の旧約聖書は両宗教の聖書正典であるが、これを含めて神話とする見解がある。
C#の例を示す。まず以下では、「string型の引数を1つと、int型の戻り値を持つデリゲート」を宣言している。delegate int SomeDelegate(string p);コンパイラによって、System.Delegateから派生するSomeDelegate型が生成される。次に、以下のようなメソッドを持つクラスがあったとする。class SomeClass{  private string someField = "TEST:";  public int SomeMethod(string p)  {    return this.someField.Length + p.Length;  }  public static int SomeStaticMethod(string p)  {    return p.Length;  }}そして、以下のように（デリゲートと同じ引数と戻り値を持つ）既存の名前付きメソッドを参照するデリゲート型オブジェクトを生成することができる。SomeDelegate del = new SomeDelegate(SomeClass.SomeStaticMethod);C/C++の関数ポインタと異なり、静的メソッドだけでなくインスタンスメソッドをデリゲートに代入することもできる（メソッドとインスタンスのペアがカプセル化される）。SomeClass obj = new SomeClass();SomeDelegate del = new SomeDelegate(obj.SomeMethod);C# 2.0以降では、匿名メソッド (anonymous method) としてインラインで記述したメソッドを参照するデリゲートを同時に定義することもできる。この書き方では、return文によって返される値がSomeDelegateデリゲートの戻り値に暗黙的に変換できない場合、エラーとなる。SomeDelegate del = new SomeDelegate(delegate(string p) {  return p.Length;});なおC# 3.0以降では、匿名メソッドの代わりにラムダ式を使って下記のように記述することもできる。SomeDelegate del = (p) => {  return p.Length;};匿名メソッドとラムダ式は併せて匿名関数 (anonymous function) と呼ばれる。匿名関数は外側の変数にアクセスすることができ、これをキャプチャと呼ぶ。匿名関数とデリゲートを用いてクロージャを実現することができる。こうして生成したデリゲート型オブジェクトは、通常のメソッドのように直接実行することができる。int ret = del("some string");なお、上記は以下のInvokeメソッド呼び出しに対する糖衣構文である。Invokeメソッドはコンパイラによって自動生成される。int ret = del.Invoke("some string");しかし、デリゲートの真価が発揮されるのはイベントと併用した時である。イベントは、次のように宣言する。class MyClass{  public event SomeDelegate SomeEvent;}こうして宣言したイベントには、+= 演算子と -= 演算子によって、デリゲート（イベントハンドラ）を追加したり削除したりすることができる。MyClass obj = new MyClass();obj.SomeEvent += new SomeDelegate(SomeEventHandler1);obj.SomeEvent -= new SomeDelegate(SomeEventHandler1);//obj.SomeEvent = new SomeDelegate(SomeEventHandler1); // 外部からの再代入はできないのでコンパイルエラー。//obj.SomeEvent(); // 外部からの呼び出しはできないのでコンパイルエラー。イベントハンドラの追加が += 演算子によって行われることから推測できるように、1つのイベントには複数のイベントハンドラを登録することができる。次のようにしてイベントの定義されたクラスの内部からイベントを起こすと、登録したイベントハンドラがまとめて実行される。class MyClass{  void ExecuteEventHandlers()  {    if (SomeEvent != null)      SomeEvent("some string");  }}実行される順番は登録順とは関係なく、未定義である。なお、eventで修飾されていない通常のデリゲート型メンバーと異なり、SomeEventにはクラス外部から=演算子で直接再代入をすることはできない。また、SomeEventが定義されたクラス内からしか呼び出せない。この制約により、誤ってイベントサブスクリプションをクリアしてしまうことを防止したり、イベントハンドラーを呼び出す責任の所在を明確にしたりすることができる。